Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
はじめに 最近メーラーをGmailからInbox by Goolgeに移行しまして、メール一覧から本文に遷移するアニメーションや本文からメール一覧に戻るアクションが自然で良いと感じたので、それらを容易に扱えるようにする方法を書いていこうと思います。 このgifアニメーションは、SAInboxViewController(113Stars 2015/09/10)のサンプルになります。 今回はこのSAInboxViewControllerを利用して、Inbox by Googleの遷移を実現していきます。 インストール方法 iOS8以降の場合 Cocoapodsからのインストールが可能です。 Podfileに を追記してインストールしてください。 iOS7の場合 SAInboxViewControllerの5つのファイルをプロジェクトファイルに追加してください。 使用方法 1: まず、一覧を表
殿堂入り Realm Core Dataなんて最後に使ったのはいつだろうか。。。 Alamofire SwiftyJSON 通信ライブラリAlamofireのブロック構文に、JSONをより扱いやすくするSwiftyJSONをぶっこむ。 最近SwiftyJSONの仕様が変わってイマイチになったが、Swiftバージョン2.0でguard構文が追加されるので、guardで宣言するときに使いやすくなるかも。 SDWebImage みんな知ってる画像キャッシュライブラリ。 UI paper switch スイッチのON/OFFで色をアニメーション付きで変更する。 SCLAlertView フラットなアラート LTMorphingLabel 文字をモーフィング(アニメーション)させる MMPopLabel ポップラベル。Slackの立ちあげ時とかに出てくるアプリケーションのチュートリアルとかに使う。(
About Realmは、SQLiteやCoreDataを置き換えるべく開発されているDBで、主な特徴はこんな感じです。 NoSQL的なアーキテクチャ 高速 JavaとCocoaをサポート iOSとAndroidで設計を共有できる DBファイル(*.realm)がプラットフォーム非依存なので、データの共有が容易 公式のドキュメントやサンプルコードがそれなりに充実しているので、とりあえず使い始めるには情報に不足はありません。 しかし、ある程度開発を進めていくと、ドキュメントで言及されていなくても、事前に知っておかないと辛い部分も見えてきたので、メモとしてまとめておきます。 サンプルコードは主にJava(Android)となりますが、Cocoaな人は適宜Swift/Objective-Cに読み替えてください。 [共通] StandaloneObjectという概念 [Java] Standalo
iOSアプリを作ってると気づかないうちにやってしまっている循環参照。 メモリリークの原因は大概コレが原因となっていると思います。 1.循環参照とは? 循環参照とは「クラスAとクラスBのインスタンスがそれぞれ存在した時、クラスAのインスタンスをクラスBのプロパティに格納し、クラスBのインスタンスをクラスAのプロパティに格納する」といった状態になった時に、お互いにインスタンスを参照しあうため、どちらも解放されずにそのまま残り続けてしまう、という現象です。 2.強参照と弱参照 クラスのインスタンスは何も指定しなければ通常「強参照」と呼ばれる形で代入されます。 強参照とは、端的に言えば親子関係です。 親が解放されると子も自動的に解放されます。 ここで上記のようにお互いが親としてインスタンスを保持すると循環参照が起きるわけです。 そこで、この循環参照が起こることを防ぐために弱参照を使います。 Swi
class HogeHogeViewController { var textField: UITextField? var button: UIButton? ... func event() { ... } } 例として、Optional型でtextFieldとbuttonを保持していて、event()が実行された時に、それぞれの状態をチェックしたい的な状況 1.2以前 func event() { if let textField = self.textField { if textField.isFirstResponder() { if let button = self.button { if button.enabled { // Do something } } } } }
Swift での iOS アプリ開発 徐々にですが、でも確実に色々な場面で Swift のコードを見る機会が増えてきたことを実感します。 iOS の設計思想など大枠の部分では Objective-C での知見は生きてきます。 しかし Swift の言語仕様についても知っておかないと ついつい低きに流れて Objective-C ぽい Swift になってしまいがちです。 Swift のコードレビュー そこで Swift らしく Swift の良さを活かしたコードにするためにコードレビューの話になるわけです。 iOS 開発全般におけるコードレビューについては以下のブログにまとまっているので省きます。 iOSアプリケーション開発のコードレビューで気をつけていること - ninjinkun's diary また本記事を書くにあたって Swift コードレビューを調べていて良いものがまとまっていた
kishikawakatsumi/KeychainAccess · GitHub そろそろSwiftをちゃんと勉強しようと思って作りました。 Swiftで書かれたKeychainのラッパーの中ではもっとも高機能でかつ簡単に使えるものができたと思います。 機能としては下記を備えています 簡単に使えるインタフェース アプリ間のキーチェーン共有 アクセシビリティ(バックグラウンド動作時の制限など)属性のサポート iCloudによるキーチェーンの同期 Touch IDによるキーチェーンの保護(iOS 8〜) iOSとOS Xの両方の動作をサポート インストール Carthage github "kishikawakatsumi/KeychainAccess" CocoaPods pod 'KeychainAccess' CocoaPodsを使う場合、CocoaPodsのバージョンはbeta版の0.
この記事ははてなエンジニアアドベントカレンダー2014の16日目です。昨日はid:nobuokaによる「【Retrofit を読む】 利用者が定義したインターフェイスに実装を提供する Java ライブラリの作り方 【リフクレション】」でした。 こんにちは。はてなアプリケーションエンジニアのid:cockscombです。 Webと連携するスマートフォンアプリを開発するとき、Web APIを抽象化したAPIクライアントを作ることがよくあります。これはWeb APIのエンドポイントとメソッドを紐付け、パラメータに名前をつけて、返ってくるJSONのレスポンスを何らかのクラスに当てはめ型付けする、といったようなものになります。 Swiftのモダンな言語機能を利用して、このAPIクライアントを書きましたので、以下に詳解します。例としてGitHubのStatus APIを取り上げています。 またネットワ
はじめに swiftの extension では通常格納型のProperty を追加できません。 しかし、 ObjectiveC の時代からある仕組みを使うと一応できるようになります。 こんな感じに objc_getAssociatedObject、 objc_setAssociatedObject を使います。 少し気をつける必要があるのが、 transitionAgentKey のようにget/setで同一のポインタアドレスを渡すようにすることです。(String Literalだと上手く行きませんでした)。 private var transitionAgentKey: UInt8 = 0 extension UIViewController : TransitionViewControllerProtocol { public var transitionAgent: Transi
iOSアプリをSwiftらしいコードで記述するために
2. ⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希 / デジタルサーカス(株) 副団⻑⾧長CTO ! ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH 3. ⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希 / デジタルサーカス(株) 副団⻑⾧長CTO 新! 卒13年年⽬目 ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く