ちょっと仕事で触ってみて分かった範囲のことを書きます。断りがない限り、 iPhone 3GS で Wifi 接続環境下においてテストしました。 ■キャッシュ無し vs キャッシュ有り executeFetchRequest:error: メソッドを用いて、 Entityのプロパティで一件だけ絞り込んで返すようなクエリは大変遅いということが分かりました。Indexを付けて実行してもほとんど速くなりません。どうやらそもそもバックエンドに使っているSqliteが大変遅い、特にコネクションを生成したり破棄したりするのが遅い感じがするので、ループで一件ずつ取得するなどのときはたくさんのSQLが実行されないようにする必要があります。 objectWithID: メソッドは試していないのでちょっと不明です。 回避策として、アプリが起動したタイミングで当該エンティティの全オブジェクトをあらかじめ取ってきて
将来的にXcode側の対応が変わる可能性が極めて高いので暫定ですが、Xcode 6 beta 7でSwiftからCore Dataを触った時に注意するポイント2点まとめです。この2点にだけ気をつければSwiftでもCore Dataは案外あっさり動きますのでご安心ください! 1. プロパティの設定の仕方 @NSManagedを使うこと Int, BoolではなくNSNumberを使うこと。StringはStringでOK Many関連にはNSSetを指定すること 2. entityNameの与え方 コード上ではクラス名だけを与える Model Editor上ではモジュール名.クラス名(完全修飾名)を与える
これまでiOS 2.0の登場から今日に至るまでiOS開発者として仕事してきたわけですが、今年はいよいよ本格的に仕事でAndroidの開発を行っていきたいと思っています。そこで正月休みを使って準備したAndroidの開発環境や勉強用の資料をまとめてみました。同じく今年からAndroidやってみよう!という方の助けになればと思います。 ■前提条件 まず最初に前提条件として筆者のスペックをまとめてみました。 iOS開発歴4年ぐらい (iOS 2~7) Android開発歴半年ぐらい (Android 1.5~2.1の間、仕事では殆ど使ってない) Java歴は3年ぐらい (大学時代と最初の会社でSIerをやっていた間、SJC-P所持だがJava 7とか8とかはわからない) iOSの開発歴が長く、モバイル開発で必要な要素や落とし穴などをひと通り踏んでいること、少しですがAndroid開発歴があること
あんまり iOS 上での開発規約とか見かけないので、試しに私が今個人/会社で使っている開発規約を公開してみることにしました。 ■設計 設計は所謂 MVC と呼ばれる設計モデルを採用します。ただし、厳密な MVC というわけではなく、以下のような区分になっています。Model Core Data を使用します。通常 MVC での Model というと業務ロジック等を含めた業務モデル一般すべてを含むのですが、私の場合は特に Core Data の NSManagedObject を Model として扱い、 Model 単体のみで完結するロジックのみを Model に記述します。たとえば、Core Data から対象の Model とその関連 Model 取得Model の新規作成新規作成時、更新時に自動的に Model のプロパティを更新するModel のプロパティの値を元に幾何学計算をした
前回記事で見事大失敗したので、今回改めてThriftのTHttpClientのPython実装にProxy機能を持たせるチャレンジを行いました。結果、無事成功しました!さっそく共有させていただきたいと思います。 ■PythonのEvernote APIをProxyに対応させる方法 まずはEvernote APIの中で使用されている通信クラス、thrift.transport.THttpClientを修正する必要があります。 以下のようにTHttpClient.pyを修正してください(または別名ファイルとして保存してください)。 http://gist.github.com/204501 修正しましたら、APIを呼びだす側のコードを以下のように変更してください。 # これを・・・ # import thrift.transport.THttpClient as THttpClient # こ
Evernote APIで使用されているThriftのTHttpClientクラスには、プロキシの設定を行うためのインターフェースが用意されていません。そのため、プロキシ越しにEvernote APIの呼び出しを行うことが出来ないみたいです。 (ひょっとしたら出来るのかもしれませんが、調べた範囲ではわからず) そこでThriftのTHttpClientクラスのPython実装をプロキシに対応させるべくチャレンジしてみました。 http://gist.github.com/204501 基本的には元々httplib.HTTPで実装されていたところをhttplib.HTTPConnectionに変えただけなのですが、ところがこれがうまくいかない。このクライアントで/edam/user/にCheckVersionリクエストを投げると500エラーが返却されてしまいます。で、500エラーを拾うと再度
API Keyくださいとお願いしたらすぐに発行してもらえたので、試しにEvernote APIを触ってみました。 ■準備 http://www.evernote.com/about/contact/support/?application=EvernoteAPI&summary=API+Key+Request#inquiryからAPIキーくださいとお願いする http://www.evernote.com/about/developer/api/からSDKみたいなのをダウンロードして解凍 http://blog.lilyx.net/2008/11/03/evernote-api/を見ると発行するときに手間がかかったとの記述がありましたが、私の場合は半日で発行されました。まぁ1年たってますし、状況が良くなったのかもしれませんね。申請時にアプリの詳細を事細かに書いたのが良かったのかもしれません
自分でWeb サービスを作る際に、APIの認証ってどうやって作ればよいのだろうと思い立ち、各種Web サービスのAPIの認証方法を調べてみました。 ■Google 参考にしたページはこちら。 http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI 認証方法 ユーザーIDおよびパスワードを元に、Cookieを生成 認証時のAPI通信 HTTPS POST 認証URL https://www.google.com/accounts/ClientLogin 認証後のAPI通信 HTTP GET/POST, HTTPS GET/POST トークン送出方法 HTTPリクエストヘッダのCookie属性に「SID」を含める Cookieを使う方法ですので、Webブラウザを用いるWebアプリケーションに対する認証の場合は非常に簡単ですが、クライアントアプ
Xcodeにデフォルトで付随しているテンプレートでは満足出来なくなってきたため、デフォルトのテンプレートを改造して自分用の新規ファイル作成テンプレートを作ることにしました。 参考文献はこちら。 http://d.hatena.ne.jp/griffin-stewie/20090315/p1 ■デフォルトのテンプレートのあるパス デフォルトのiPhone SDK用のテンプレートは以下のパスにあります。 /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/ 中を見ると、 akisute Xcode$ pwd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode akisute Xcode$ tree -L 1 . |-- File Templates
Pythonだと、 list = [{'no':1, 'name':'akisute'}, {'no':2, 'name':'abesi'}, {'no':3, 'name':'hidebu'}] maxNo = max(list, key=lambda x:x['no']) こんな感じでリストに含まれるオブジェクトの最大値を簡単に取り出せたりするのですが、Objective-Cでもできないかと思い調べてみました。ですが、NSArray自体にはそのようなメソッドが用意されていません。ひょっとして出来ないのかと思っていたら、ちょっと面白い方法で集計関数のようなものが実装されていることがわかりました。 Objective-CにはKey-Value Codingという概念があって、それを使って実装されているようです。Key-Value Codingについては正直全然理解していないのでここでの解説
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く