iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど Defaults値を保存したい。あるいは参照したい。ベタには必要な箇所で書く(あちこち)。 [[NSUserDefaults.standardUserDefaults setObject:@"hoge" forKey:@"name"];でもキー名を直接書くわけにもいかず定数定義のヘッダを作る。 [[NSUserDefaults.standardUserDefaults setObject:@"hoge" forKey:KEY_NAME];でも synchronize を忘れたりするのでいっそのこと独自クラスを作ってそちらで管理する。 [myDefaults setObject:@"hoge" forKey:KEY_NAME];でも定数定義が毎回面倒。 なによりも設定/参照のコードが長い
シンガポール在住のソフトウェア開発者です。なんだかんだでシンガも4年目突入。仕事もしくは趣味でやっていることをまとめています。 英語のブログは http://atmarkplant.com にあります こんにちは, またしばらくWeb系開発にいそしんでおりまして, iOSが触れない日々が続いています。 先日, アプリの手直しをして ようやくupdate がかかりましたので, この内容が書けるようになりました。 UIView を使って, いろいろな形を作って, それを画面に張り付けたりして, かっこいいUIをつくりたいわけですが, その中で, 円と角丸のView を作ってみました。 成果物はこちら, ColorDos というソフトです。TODOアプリです。 4ヶ国語対応, 無料ですので, 今回のコードでどんなものができるの確認したい方は是非是非 よろしくです。(やっぱり, 最近は出してもDo
CALayerを用いてUIViewを継承したクラスに影をつける方法は、下記のような感じで(CoreGraphicsで描画する方法などと比べて)わかりやすくお手軽で、質感もグッと増すので、ついつい多用したくなります。 self.layer.shadowOpacity = 0.5; self.layer.shadowRadius = 2.0; self.layer.shadowOffset = CGSizeMake(0.0, 0.0); ただ、影とか透過とかの処理はなかなか重いらしく、例えば UITableViewCell に置いた背景用画像に影をつけると、iPhone4ぐらいでも完全に体感できるぐらいに遅くなってしまいます。 で、このコードに下記の3行を付け加えてやると、体感でわかるぐらいに改善されます。 self.layer.shadowPath = [UIBezierPath bezie
Modernize your Objective-C // Speaker Deck のスライドを読んで初めて知ったので、調べてみたら便利そうだったのでそれのメモです 公式ドキュメント Key-Value Coding Programming Guide: Collection Operators 概要 コレクションのvalueForKeyPathメソッドで特殊演算子を文字列で指定することで合計や平均を取得することができます。 演算子は @ から始まります。 なんか言葉で説明するのが苦手なのでサンプルをだらだらと書いておきます。 Simple Collection Operators 例として次のような配列があるとします // 数値配列 NSArray *numbers = @[@3, @2, @5, @1, @4]; NSDateFormatter *formatter = [[NSDa
iOS 7のブラー効果をどう実現する? コントロールセンターや音量調節の背景など、iOS 7でよく見かける磨りガラス風のあれです。ブラーをかけるとなんとなくiOS 7っぽくなるので、「コントロールセンターみたいにブラーかけてよ!」って言われることが増えそうですね。 「磨りガラス風の画像を上にかぶせりゃいいんじゃないの?」と誤解されている方も多いかもしれませんが、そういうわけにはいきません!それっぽく見せるにはプログラムでそこそこのコードを書いてあげなければなりません。 UIViewとかにブラーをかけるメソッドがあるといいのですが、今のところないです。したがって、自前で作成したビューにブラーをかけるには、その処理を自分で実装する必要があります。ようするに時間がかかります。 そこで、ブラーをかけるのにどういった実装方法があるのかを調べてみたところ、以下の2つの方法がみつかりました。 標準コント
2013-12-21 iOS7スタイルのぼかしエフェクトを使用しているハイクオリティなオープンソースUIライブラリ集 iOS7がリリースされてから、iOS7のぼかしエフェクトを使用したオープンソースのUIライブラリが多数リリースされています。今回はその中でもハイクオリティなUIライブラリを紹介します。 ちなみにiOS7のAPIでは、ぼかしエフェクトを標準で提供していません。キャプチャしてぼかしエフェクトを実現しているものが多いです。 このタイプのものは処理が重いのでiPhone5以前では対策が必要です。 iOS-blur https://github.com/JagCesar/iOS-blur iOS7がリリースした直後ぐらいにでたUIです。これはキャプチャーせずにUIToolbarのレイヤーを利用してネイティブのぼかしエフェクトを実現しています。 FXBlurView https://g
はじめに: Vimならではの便利機能をマスターしよう! かれこれ数年前、僕がVim(というか、たぶんVi)と初対面したときは、「なんて使いにくいエディタなんだ!!」と最悪の印象でした。 しかし、周りのプログラマやネット上のエンジニアたちはみんな「Vim便利!」「Vim最高!」と言います。 なのでその言葉を信じ、僕も最悪の印象だったVimともう一度正面から向き合うことにしました。 そして、月日が過ぎ・・・僕もいつしか「Vim便利!」「Vim最高!」と叫ぶようになってしまいました!! これって洗脳? いやいや、洗脳じゃありませんw Vimにはメモ帳の延長線上にあるエディタでは実現できないような数々の便利な機能があります。 覚えるまでにはちょっと苦労しますが、覚えてしまえばメモ帳系のエディタでは追いつけないようなスピードでテキストを編集することができます。 とはいえ、そもそも覚える以前に「そんな
はじめに iPhone5sはA7チップが採用され、世界初の64ビットスマートフォンとして話題になりました。その話を聞いて興奮された方、そうでない方、多々いらっしゃると思いますが、私は後者です(^_^; 64ビット端末が意味する事とは!?どんなお付き合いをすればいいのか!?などなどをアプリ開発者目線でざっくばらん(独断と偏見に満ちています)にまとめてみました。 なんでこのタイミングで64ビット化したの? 64ビット化と聞いてアプリ開発者が一番想像し易いメリットはおそらく「使用できるメモリ量の上限が4GB(2GB)を超えられる」という点だと思いますが、現状まだそこまでメモリを搭載していませんし、今後発売される端末(iPhoneに限らず)にきっと大量のメモリを搭載してくるから、先攻して開発できるようにしたのかな?などと勝手に想像しています。 64ビット化の理由について他にも考察されている方がいら
UIWebView の取り扱いによってはjavascript経由でサンドボックス外のファイルシステムにアクセスできてしまうという話と対処法 - laiso - iPhoneアプリ開発グループ http://iphone-dev.g.hatena.ne.jp/laiso/20111003/1317651353 これの続き。 カスタムリソースにはNSURLProtocolを使えば良いのじゃないか? — sklave http://sklave.jp/logs/2011/10/4/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AB%E3%81%AFnsurlprotocol%E3%82%92%E4%BD%BF%E3%81%88%E3%81%B0%E8%89%AF%E3%81%84%E3
Angularとサーバーサイドテンプレートの混在 先日リリースされた某サービス(他社)がAngularを使っていて、XSSがボロボロ出てくるだとか、{{var}} な形式で値を入力するとng-template側でテンプレーティングされるだとかの話がありました。 詳しくは見ていないので、今回の話とまったく同じかは把握していませんが、サーバーサイドテンプレートを混在させると、次のようなことが起こりえます。 例えばejsとAngular サンプルとしてスカスカなControllerを用意します。 angular.module('app', []).controller('AcmeCtrl', function($scope) { $scope.foo = 'bar'; }); ejsは次のようなテンプレートになっているとします。
この記事は Git Advent Calendar 6日目の記事です! Git submodule って最初わかりにくいと思うので、基本的な説明をしようと思います。 git submodule とは git submodule は、外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組みです。 Subversion でいうところの、external と似ています。 さて、解説のため、手元に、リポジトリA (/path/to/a) とAの submodule として、よく使う例として Bootstrap (元Twitter Bootstrap) を登録してみます。 git submodule を理解するうえで重要なのは、 リポジトリAが指し示すsubmoduleとしてのBootstrapのcommit 現在のBootstr
B! 70 0 0 0 Gitのsubmoduleがいつもイマイチ良くわからなくなるので 自分なりのまとめ。 レポジトリにsubmoduleの追加 submoduleのあるレポジトリをcloneする submoduleの更新 submoduleの削除 ignore = dirty Submoduleのプロトコルの変更 レポジトリにsubmoduleの追加 git submodule addで追加。 $ git submodule add [email protected]:rcmdnk/evernote_mail.git ./submodules/evernote_mail addすると.gitmoduleというファイルがまだ無い場合は作られ、その中に [submodule "submodules/evernote_mail"] path = submodules/evernote_mai
JavaScriptに限った話ではないのですが、reduce関数を持つプログラミング言語がいくつかあります。 JavaScriptに関しては、一応、ECMAScript5の仕様に登場するようで、将来的にはどのブラウザでも使えるようになりそうな気配はあります。 Standard ECMA-262 また、MDCではreduceのアルゴリズムが掲載されているので、これを利用すれば現時点でもどのブラウザでもreduce関数を利用することができます。 reduce関数とは? MDCに掲載されている文章を引用します。 配列の(左から右へ) 2 つの値に対して同時に関数を適用し、単一の値にします。 JavaScriptのreduceは、配列のメソッドです。左ら右へとありますが、右から左へ関数を適用するreduceRightという関数もあります。*1 どういう時に使えるか 元となる配列があって、それを累積
X-BASIC for iOSのiOS7対応を始めて、iOS6との違いとかバグとかが見えてきたので、 ここに覚書をしていく。 発見した時点のものを書くので、最新バージョンのiOS7(もしくはSDK7)でどうかは、特に調べたもの以外は未確認。 ・・・ (1)NSMutableArrayにUILabelを入れ、 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { return [lblArray objectAtIndex:row]; } とすると、選択項目(中央)の表示が抜けてしまう。 { UILabel *lbl=[lblArray objectAtIndex:row
表示が欠けるのと、一番下の行が隠れてしまう問題の対応。 2014.9.10 追記 以下の方法は、iOS 7まで有効です。 UITextViewのscrollEnabledは現状使ってはいけません。 うちのアプリは、ある機能のために全文置き換えをする必要がありましたが、単に文字列を置き換えるのは - (void)replaceRange:(UITextRange *)range withText:(NSString *)text を使うのが無難です。 iOS7の不具合と思われる現象です。 iOSの更新を待っているのも、解決が遅くなるため、先日対応しました。 試してみたら改善した という感じな点もあるので、アプリに適用するかはその点も考慮してください。 表示が欠ける問題 文字表示が自動改行される場合に発生。 文字を、独自キーボードやボタン処理などから、直接文章に挿入した場合、表示が自動改行され
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く