2015/05/13 ヤフー社内「中級 iOS アプリ開発者」向けに行った講義の資料。Read less

About RealmのフィールドにはEnum的な型のサポートはありませんが、フィールド値をEnumとして扱えた方が、プログラムの記述がスッキリすることが多いと思います。 色々と試行錯誤した結果、RealmObjectへのEnumの取り込み方は、このような感じに落ち着きました。 必ずtypeAsEnumプロパティを使うように気を付ける必要があったり、rawValueへのアクセサが隠蔽されていなかったりはしますが、switchのコーディングが楽になりました。 Java public class Item extends RealmObject { public enum Type { TYPE1, TYPE2 } // 用途に応じてintでも良い private String type = Type.TYPE1.name(); /** typeをEnumで扱うためのIgnoredプロパティ
About Realmは、SQLiteやCoreDataを置き換えるべく開発されているDBで、主な特徴はこんな感じです。 NoSQL的なアーキテクチャ 高速 JavaとCocoaをサポート iOSとAndroidで設計を共有できる DBファイル(*.realm)がプラットフォーム非依存なので、データの共有が容易 公式のドキュメントやサンプルコードがそれなりに充実しているので、とりあえず使い始めるには情報に不足はありません。 しかし、ある程度開発を進めていくと、ドキュメントで言及されていなくても、事前に知っておかないと辛い部分も見えてきたので、メモとしてまとめておきます。 サンプルコードは主にJava(Android)となりますが、Cocoaな人は適宜Swift/Objective-Cに読み替えてください。 隠れた重要ポイント [共通] StandaloneObjectという概念 [Java
func uploadFile() -> Promise { let p = Promise.defer() dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { let success = self.actualFileUpload() if !success { p.reject() } dispatch_async(dispatch_get_main_queue(), { p.resolve()() }) }) return p } ... let deferred = Deferred() ... override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading
iOS7から追加されたバックグラウンドフェッチに関して。 バックグラウンドフェッチの間隔 基本的にバックグラウンドフェッチは開発者側で制御することができません。バックグラウンドフェッチの間隔を指定する定数がUIApplicationBackgroundFetchIntervalMinimumとUIApplicationBackgroundFetchIntervalNeverのどちらかしか存在しません。 UIApplicationBackgroundFetchIntervalMinimumがシステムがサポートしている最小の間隔で、UIApplicationBackgroundFetchIntervalNeverがフェッチ処理を行わないように設定するものらしいです。そんなわけで細かな間隔を制御することができません。 BackgroundFetchを実行させるにはXcodeで設定を行い、上記のU
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:layout_alignParentTop="true" /> <android.support.design.widget.TabLa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く