ブックマーク / qiita.com/mokemokechicken (8)

  • 自分で作ったSwiftライブラリをCocoapodsにする手順メモ - Qiita

    はじめに CocoaPods の Swift ライブラリを使えるようにするなどでも紹介されているように、 最近CocoapodsもSwift対応がなされており、Alamofire のような有名なライブラリなども対応されてきました。 なので、自分で作ったSwiftライブラリもCocoapods化していきたいと思ったのですが、いろいろ躓いたのでその手順メモです。 まだCocoapodsのSwift対応も完全ではないので、今後手順も変わるかもしれませんが、現状の参考までに。 準備 Swift対応のCocoapodsは現時点(2014/12/24)流のBranchにはMergeされていないので、Swift対応のCocoapods環境から準備します。 CocoaPods の Swift ライブラリを使えるようにするなどでも紹介されているように、適当なLocalディレクトリに Bundlerなどで入

    自分で作ったSwiftライブラリをCocoapodsにする手順メモ - Qiita
    yfnt
    yfnt 2015/03/27
  • swift: extension を使って既存Classに格納型Propertyを追加する方法 - Qiita

    はじめに 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

    swift: extension を使って既存Classに格納型Propertyを追加する方法 - Qiita
    yfnt
    yfnt 2014/12/23
  • 構造を定義したJSONを安全に扱うSwiftコードを自動生成する - Qiita

    はじめに Swiftで任意の形式のJSONを扱うには Swiftで面倒なJSONの取り扱いをさらに10倍便利にするclass JSON がかなり便利です。 しかし、大抵のAPIなどで得られるJSONは既に構造が決まっていて、そのやりとりやその後の処理を記述する部分では、可能ならば型安全の恩恵を受けたいと思うことがあります。 Json Schema というのはそういう方向性なのかもしれませんが、無駄に大きいというか、現状ちょっと扱いづらい。 ということで、↓こういうオレオレコードジェネレータを作ったのでご紹介します。 https://github.com/mokemokechicken/ObjectJsonMapperGenerator 使い方 次のStepです。 JSONの構造を定義する それからSwiftコードを自動生成する 使う JSONの構造を定義する JSONの構造をYAMLで定義

    構造を定義したJSONを安全に扱うSwiftコードを自動生成する - Qiita
    yfnt
    yfnt 2014/12/07
  • SwiftでNSManagedObjectのSubclassを使う場合は、対応Class名にモジュール名のPrefixを付ける - Qiita

    SwiftでNSManagedObjectのSubclassを使う場合は、対応Class名にモジュール名のPrefixを付けるCoreDataSwift タイトルそのままですが、 swiftでCoreDataのNSManagedObjectの Subclassを作るとき、 @objc(EntityClass) と付けるやり方がありますが、それよりはCoreDataのEntity定義で (モジュール名).(EntityClass名) とする方が良さそうです。 @objc(Entity) を付ける場合 @objc(Entity) を付けるとおそらく名前空間がGlobalな(従来のObjectiveCが使っている)場所になるのだと思います。 つまり、 @objc(ChildEntity) class ChildEntity: NSManagedObject { @NSManaged var id

    SwiftでNSManagedObjectのSubclassを使う場合は、対応Class名にモジュール名のPrefixを付ける - Qiita
    yfnt
    yfnt 2014/08/03
  • SwiftのGenericsの挙動メモ - Qiita

    自分メモです。 Xcode6 Beta4で、Generics周りでコンパイラの挙動が怪しい。 コンパイラのバグなのか仕様なのかよくわからないので、正式版が出たらもう一度コンパイルしてみようかなと思います。 Segmentation Faultになる このコードは、 class SomeClass<T1> { struct ValueInfo { let value: T1 } private(set) var array = [ValueInfo]() func add(value: ValueInfo) { array.append(value) } } 1. While emitting IR SIL function @_TFC6petamp9SomeClass3addU__fGS0_Q__FVS0_9ValueInfoT_ for 'add' at /Users/k_morishi

    SwiftのGenericsの挙動メモ - Qiita
    yfnt
    yfnt 2014/07/30
  • 要約:iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い - Qiita

    はじめに 社内勉強会の資料をSlideShareのUPしました。 iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い これについての要点をまとめます。 この資料はiOS/Androidのような クライアントアプリケーションにおける「Model」とは何か、という話です。 Modelとは何か? Modelに「データやビジネスロジックを扱うコンポーネント」という役割を担わせるというのは多くの人がやっていることだと思います。しかし、サーバ側のWebアプリケーションとは異なり、クライアント側のiOS/AndroidアプリのModelには次の2つの振る舞いがとても重要です。 基死なない(Singleton的である) 「通知」で変更を伝える(Callback的ではなく) そのようなModelがなぜ必要か? この2点の役割を持つコンポーネントがなく、特に何も考えずにスマホ

    要約:iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い - Qiita
    yfnt
    yfnt 2014/07/10
  • AppStore向けiOSアプリをJenkinsでEnterprise配布するときのTips - Qiita

    はじめに AppStore向けiOSアプリをテストやお客様に確認して頂く目的で、Enterprise配布版を作成することがあると思います。 その際の色々な手間や手作業ミスの混入を防ぐためにJenkinsを使う際のTipsです。 主な前提 前準備 ソースコードはgitで管理されている Jenkinsは設置済みで、 以下のPluginをInstallしておく XCode Plugin: https://wiki.jenkins-ci.org/display/JENKINS/Xcode+Plugin Git Plugin: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin Node and Label parameter plugin: https://wiki.jenkins-ci.org/display/JENKINS/NodeLa

    AppStore向けiOSアプリをJenkinsでEnterprise配布するときのTips - Qiita
    yfnt
    yfnt 2013/11/21
  • Objective-CでDeferred/PromiseでMethod Chainを書くときのTips - Qiita

    はじめに 「Objective-Cの文法とMethod Chainって致命的に相性悪いよね」というのを解消するTipsです。 さっき社内の後輩に教えてもらって感動したので投稿します。 問題点 最近かじり始めたDeferred/PromiseをObjective-Cでも使いたいと探していて、とりあえず CocoaPodsでInstallできる OMPromises https://github.com/b52/OMPromises というのを使っていました。 Promiseの考え方は、Webのみならず、通信や非同期Methodが多用されるiOS/Androidアプリでもとても重宝しそうです。 で、このOMPromisesですが、動作上はとりあえず問題無さそうなのですが、JavaScriptのようにMethodChainを行おうとすると、こんな感じになります。 return [[[[self

    Objective-CでDeferred/PromiseでMethod Chainを書くときのTips - Qiita
    yfnt
    yfnt 2013/11/16
  • 1