タグ

tipsに関するar_tamaのブックマーク (167)

  • 国際化したStoryboardを一つにまとめる - ninjinkun's diary

    これまでiOSプロジェクトを国際化する際にはStoryboardファイルは対応言語分複数作る必要がありましたが、iOS6からは一つにまとめて、他の言語は.stringファイルで管理することが可能になります。これにより、Storyboardを変更した際もGUIによるレイアウトの変更は一回で良くなります。 ただしこれをやるとiOS5で動かなくなるので注意が必要です。 やり方 Use Base Internationalizationにチェックを入れる BaseにするStoryboardを選ぶ 僕のアプリは日語主体で設計していたので、日語を選択しています。英語の方が主体なら英語を選択した方が良いと思われます。 Localizeされたファイルができる この状態だとstoryboardが2つある従来の状態と一緒です。 .stringファイルを生成する Localizable Stringを選択す

    国際化したStoryboardを一つにまとめる - ninjinkun's diary
  • [iOS] CALayerを使ってみる

    UIViewをカスタマイズして、カスタムコントローラを作ろうと思っています。 【目標】 ・単純なプログレスバー ・表示はグラデーションでバーを表示して、伸びるときはアニメーション CoreGraphicsでUIView内に描画しようと考えていましたが、CALayerという機能があるので試してみる。 UIView内に、階層的にレイヤーを追加して、表示を管理できるみたいです。 アニメーションさせたりできるみたいです。 最初に、レイヤー内にグラデーションで四角形を描画して、UIViewに追加してみた。

  • iPhoneアプリ開発のためのサウンドフォーマットまとめ | ぱーくん plus idea

    iPhoneゲームを作成することになったため、音声ファイル再生の方法を調べたのですが、数多くのフォーマットがあり、どの形式で利用するのがいいか迷ってしまいました。 そこで、各フォーマットとその特徴をメモっておこうと思います。 なお、下記の表は AppleのiOS Developer Libraryから引用したものです。 音声のデコード方式について音を鳴らすのに、ハードウエアデコードを使うか、ソフトウエアデコードを使うかは同時に鳴らせる音声ファイルの数に影響します。 同時に再生されている各サウンドはひとつの「チャンネル」を使用しますが、ハードウエアチャンネルは一つしかないため、AACまたはMP3がハードウエアチャンネルで再生されている場合は、その他のファイルの音声を同時に鳴らそうとすると、ソフトウエアデコードされることになります。(つまり、ソフトウエアデコードできなかったiOS3.0以前は

    iPhoneアプリ開発のためのサウンドフォーマットまとめ | ぱーくん plus idea
  • Objective-C の instancetype キーワードが面白い + typeof(self)の考察 – Zero4Racer PRO Developer's Blog

    Appleのサンプルコード、iAdSuite を見ていたら見慣れない表現が出てきたので、調べて見ました。 @implementation TextViewController - (instancetype)init { self = [super initWithNibName:@"TextViewController" bundle:nil]; if (self) { //... } return self; } こんな感じ、”- (instancetype)init”と書いているのを見て、なんで”-(id) init”じゃないのかなと思いました。 調べてみると、Clang Language Extensions — Clang 3.3 documentation clangのドキュメントによると、 A method with a related result type can be

    ar_tama
    ar_tama 2013/01/09
    "__weak typeof(self) wself = self;"
  • [iPhone SDK] UILabel からポップアップメニューを表示してみる | DevCafeJp

    今作っているアプリに UILabel を複数置いた画面があるが、その UILabelたちは編集はできなくてよいが、コピーは可能にしたい。 ということで、検索してみたら Stack Overflow で見つかった。 いつもながら、Stack Overflowは見つからない質問はないのではないかと思えるくらい質問と回答が充実している。 で、この通りにUILabelを継承したCopyableLabelを作ればよいのだけれども、この通りにやるとUILabelのサイズの中央にUIMenuControllerのメニューが表示されてしまうので、Interface BuilderでUILabelのサイズを余裕を持って配置している場合には違和感のある表示になってしまう。 ということで、UILabel中の文字列のサイズを取ってきてそのサイズの中央に表示するように変えてみた。 あとは、コピーした際にコピ

  • UITableViewCell の accessoryView を使うと少し楽

    UITableViewCell の accessoryView というプロパティについてです。それほどマイナーなプロパティでもないので、実は当たり前なのかもしれませんが、最近便利さに気付いたので紹介します。 UITableViewCell には accessoryType というプロパティがあって、3種類のアクセサリが付けられます。 accessoryView は、これをカスタムな見た目にしたい時に使うぐらいのものだという認識でした。実際そうなのですが、よく考えたら UIView ならなんでも入れられるわけで、UISwitch だって入れられるんだなと。設定画面でスイッチがよく出てくるのですが、今まで contentView に addSubview していて、位置を合わせるのが面倒だと思っていました。でも accessoryView なら次のコードで終わりです。frame の origi

    UITableViewCell の accessoryView を使うと少し楽
  • iPhoneの月額課金で直面するマニュアルにないルール

    この記事は、iPhoneのアプリ内課金(In-App-Purchases)を使った、月額課金システムを実装した時の恐怖体験についてです。 ※更新※ 最近、App Store Review Guidelinesが変更されていて、新聞とか雑誌以外でも自動継続課金(Auto-renewable)のルールがちょろっと更新されたみたい。 iPhoneの自動継続の月額課金がサービス系のアプリでも使えるようになったか しかし、実際のところ、どんなアプリがOKかはあいまいな部分もあるとは思うし、やってみないとわからなかったりするので、SaaS系で承認された人いましたらぜひコメント欄とかで教えてくれると嬉しいです。 ちなみに、アップストアのレビュー通ってもリリース時期を遅らせたらストアには公開されないので、レビュー通るかよくわからない時は、凄くシンプルな実装でとりあえずレビュー通るかまずサブミットして様子み

    iPhoneの月額課金で直面するマニュアルにないルール
  • JavaScript のスコープを理解する - tacamy--blog

    スコープとは、変数の有効範囲のことで、プログラムのどの場所から参照できるかを決める概念です。 スコープの種類 JavaScript のスコープには、グローバル変数とローカル変数の 2 種類あります。 グローバル変数 ローカル変数 関数の外(トップレベル)で宣言した変数 関数の中で宣言した変数, 関数の仮引数 プログラム全体から参照できる その関数の中でのみ参照できる ブロックスコープは存在しない Java などの言語では、if や for などの {} で囲まれたブロックごとにもブロックスコープがありますが、JavaScript には存在しません。 JavaScript でどうしてもブロックスコープを使いたい場合は、with 命令を使う方法や、無名関数を定義と同時に呼び出すなどの方法で、擬似的にブロックスコープを作ることは可能です。 補足 : let を使うとブロックスコープがつくれると教

    JavaScript のスコープを理解する - tacamy--blog
  • Dreevoo.com | Programs | Adobe Photoshop | Photo effects | Create a Hefe Instagram photo filter using Photoshop

    ar_tama
    ar_tama 2012/11/12
    InstagramのHefeっぽいエフェクトのつくりかた。最後の枠つくって乗算するあたりすごい勉強になる
  • iPhoneで撮った写真をMacでプレビュー・一括取り込み・一括削除 - たまめも(tech)

    iTunesで写真共有をオフにしているけど、この写真だけPCに送りたい」 「Macの大きい画面上で写真の整理がしたい」 「いらない写真たまってきたなー」 というとき、プレビュー.appを使うと簡単に写真のプレビュー・取り込み・削除ができます。 iPhone(iPad/iPodでも可能みたい)をUSBでつないだら、プレビュー.appを起動 ファイル→(自分のiPhone名)から読み込む…をクリック そうすると、この画面もしくはサムネイルがタイル状に表示されます。 複数選択して削除や読み込みも可能です。shiftまたはcommandを押しながらクリック。 ファイルサイズ、日付、名前など、各項目でのソートもできます。べんり!

    iPhoneで撮った写真をMacでプレビュー・一括取り込み・一括削除 - たまめも(tech)
    ar_tama
    ar_tama 2012/11/11
    意外と知られてない(かもしれない)シリーズそのに
  • Instagramで画像を投稿せずに保存する方法 - たまめも(tech)

    tipsというか、なんというか。 Instagramで写真を加工したいけど(いまは)投稿したくないなーというとき、役立ちます。 方法はかんたん、設定から"機内モード"をオンにするだけ。 あとは、いつものように加工して "共有"をタップ すると失敗の表示が出るので カメラロールを確認すると ちゃんとできてます。わーい。 Instagramでは"共有"が押されたタイミングで画像の保存とサーバへの画像送信をおこなっているんですね。 ちなみにPathでは画像加工が終わったタイミングでカメラロールに保存されているようです。

    Instagramで画像を投稿せずに保存する方法 - たまめも(tech)
    ar_tama
    ar_tama 2012/11/11
    意外と知られていない(かもしれない)シリーズそのいち
  • _level0 | Kayac Interactive Designer's Blog

    KAYAC Front End Engineer チームによるHTML5 iOS Android ActionScript Flash イベント デザイン ニュースのブログ

    _level0 | Kayac Interactive Designer's Blog
  • Re: WordPress使いならこれだけはやっておきたい本当のセキュリティ対策10項目

    8. 管理画面にIP制限をかける wp-adminとwp-login.phpにアクセスできるホストを信頼できるIPアドレスのみに制限する方法です。たとえパスワードがそのまま外部に流出したとしても、社外から管理画面に入ることができなくする対策です。ただ、これは自由にログインさせるコミュニティサイトでは無理ですし、そうでない場合でも利便性が低下しますので、ケース・バイ・ケースで行うべき対策でしょう。 via.WordPress使いならこれだけはやっておきたい当のセキュリティ対策10項目 惜しい、非常に惜しい。 セキュリティ対策としては良いんですが、これやっちゃうと一部のプラグインが動作しなくなったりしてハマりポイントになる可能性があります。 WordPress で Ajax を実装するためには、以下のような手法が良く用いられます。 add_action('wp_ajax_example',

    Re: WordPress使いならこれだけはやっておきたい本当のセキュリティ対策10項目
  • ソケット通信で画像を送るときのエンコードまわりについて : Objective-C

    Objective-CとRubyのソケットサーバーを使ってチャットアプリを作る際にエンコード周りでハマったのでメモ。 まずは大前提として 1.ソケット通信でテキストメッセージと画像をやりとりする 2.メッセージ送信の主体を表すキー、実行コマンドのキーを付与して、id:cmd:msg というString型の文字列データで通信する という感じで実装しています。実際にはid/cmd/msgのそれぞれにString型のデータが入っていて、それをコロン「:」でつなげた文字列を使ってサーバーとやりとりする、ということです。 今回はサーバー側、クライアント側で受け取ったデータの内容によって処理を分岐させるために、データをsplitして簡単にキーを抽出できると嬉しいな、ということでString型を採用します。で、問題になったのが、画像の送信。今回は画像データをどうやってソケット通信で送るのか、というところ

    ar_tama
    ar_tama 2012/09/11
    UIImage→NSData→NSStringの変換
  • Google Chromeでは(Ajaxで)ローカルファイルにアクセスしようとするとエラーになることについて、他 - エンジニアのソフトウェア的愛情

    ちょっとつまずいたので記録。 経緯。 http://textile.thresholdstate.com/でマークアップしたテキストをウェブブラウザで表示できないかと考えた(性懲りもなくまた無節操にいろいろ手を出してます)。 Textileを解釈してHTMLに変換してくれるJavaScriptのスクリプトを見つけたので、これを使おうと考えた。 Textileでマークアップしたテキストは表示するHTMLファイルとは別ファイルにしようと考えた。 そこでブラウザで表示されたときにjQuery.getメソッドでTextileで書かれたファイルを読み込もうとした。 Google Chromeを使ってテストしたら表示されなかった。ChromeJavaScriptコンソールを開いてみると「XMLHttpRequest cannot load file:///(中略)/sample.textile. O

    Google Chromeでは(Ajaxで)ローカルファイルにアクセスしようとするとエラーになることについて、他 - エンジニアのソフトウェア的愛情
  • How to Create a jQuery Confirm Dialog Replacement

    Continuing on our quest for building customizable alternatives for browser's controls, this week we are building a cross-browser, custom confirm dialog in the form of an easy to use jQuery plugin. You can choose the text, buttons, and actions that will be executed when they are clicked. HTML Although we are mainly concentrating on the confirmation dialog, lets first say a few words about the page

    How to Create a jQuery Confirm Dialog Replacement
  • 古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 - 学習する機械、学習しない人間

    直前のコミットをやり直したいときは、git commit --amend を使うと可能だ。そして、さらに昔のコミットをやり直す(書き換える)ときは、git rebase -i を使う。 git rebase -i を使うと、引数にとったコミット以降のコミット系列に対して、コミットの書き換え、削除、統合を行うことができる。 次の課題をこなすことを目標としながら、git rebase -i の動作を追っていこう。 課題「最新のものから古いほうへ3つ分のコミット(HEAD, HEAD~1, HEAD~2)のログメッセージを書き換えたい」 git rebase -i の起動 まず、変更したいコミットで一番古いものより一つ古いものを引数にして、git rebase -i を実行する。この場合は HEAD~3 である。 $ git rebase -i HEAD~3 すると、エディタが rebase コ

    古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 - 学習する機械、学習しない人間
    ar_tama
    ar_tama 2012/08/13
    べんり…!
  • 20 Top jQuery tips & tricks for jQuery programmers. jQuery Tips Tricks

    20 Top jQuery Tips & Tricks for jQuery Programmersby Viral Patel · August 17, 2009 Following are few very useful jQuery Tips and Tricks for all jQuery developers. I am sharing these as I think they will be very useful to you. Disclaimer: I have not written all of the below code but have collected from various sources from Internet.1. Optimize performance of complex selectors Query a subset of the

    20 Top jQuery tips & tricks for jQuery programmers. jQuery Tips Tricks
    ar_tama
    ar_tama 2012/08/13
    jQueryのべんりtips20選
  • iOSアプリ開発を捗らせるツールのまとめ

    iOSアプリ開発で自分がよく使うツールとサービスについてまとめてみました。 BaaS: Parse.com ソーシャルな機能は持たせたいけどサーバ作るのだるい、そんなアプリ開発者の味方がBaaS(Backend as a Service)です。最近熱いですね。Kinvey, StackMobなども試してみましたが、機能的にも料金的にも一番おすすめなのがParse.comです。100万APIまで無料、100万〜1500万APIまで$199という価格設定です。サーバは書くのが嫌というよりデプロイがめんどいくさいんですよね。BaaSなら一瞬でアクティブになりますので捗ります。 リファレンス: Dash 高速にリファレンスを検索したい時、Dashが使えます。 iOS以外にもjQuery,Android,Rails等ひと通り揃っています。 リポジトリ: github リポジトリは何でも言いっちゃ何で

    iOSアプリ開発を捗らせるツールのまとめ
    ar_tama
    ar_tama 2012/08/06
    Parse.com使ってみようかな…!
  • Objective-Cで正規表現を使う その2 : As Sloth As Possible

    前の記事で予告した通り、今度はNSRegularExpressionの話。 正規表現でマッチした部分文字列を取得する まずNSRegularExpressionオブジェクトを作って、それのメソッドにNSStringのオブジェクトを渡す、という形で使う。まぁ説明するよりコード見た方が早い。 NSString *string = @"「そんな正規表現で大丈夫か?」「大丈夫だ、問題ない」"; NSError *error = nil; NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"「そんな(.+)で大丈夫か?」「(.+)」" options:0 error:&error]; if (error != nil) { NSLog(@"%@", error); } else { NST

    Objective-Cで正規表現を使う その2 : As Sloth As Possible