Help us understand the problem. What is going on with this article?

try! Swiftででてきたキーワードを組み合わせたアプリを作ってみた

More than 3 years have passed since last update.

try! Swiftに参加しました。とても楽しい時間でした。

帰ってカンファレンスで言及されたりした技術やフレームワークなどを利用してアプリを作ってみました。

rizumita/GetLanguages

星が飛びます。星をタップします。右上のLanguagesをタップすると捕獲したものが一覧表示されます。更にタップすると詳細表示されます。Get…というのははじめはポ○モンを捕まえるようにしようとしたのですが、権利関係が怖いのでやめた名残です。

まだ未完成です。ここをこうしたら良いよ!というところがあればPRください。

利用した技術やフレームワーク等

このアプリに利用したのは以下の技術やフレームワーク等です。

パッケージマネージャ

  • Carthage
  • CocoaPods

初日にどのパッケージマネージャが生き残るか質問したのですが、SPMだろうというお答えをいただきました。が使ってません。環境も対応状況もまだまだですね。
ちなみに私はカッセージと呼んでます。

アーキテクチャ

VIPERに似ている等で質問しました。インスタンスの所有に気をつければかなり使えると思います。
遷移コードをコントローラから分離するためのTransitionOperatorというライブラリを作成しているのでそれを利用しています。
I love storyboardです。

DI

  • Swinject

DIではDIコンテナのSwinjectを利用しました。たしか少し名前が出てきましたよね?

ユニットテスト

  • Quick
  • Nimble
  • OHHTTPStubs

ルートビューのモジュールのみでテストを書きました。他モジュールは時間がなかったので割愛。

ネットワーク&JSONパーサ

  • APIKit
  • Himotoki

他のプロジェクトではJSONパーサはGenomeを使っていますが、今回はHimotokiです。
PawというHTTPクライアントアプリを利用したのでそのファイルもプロジェクトに入っています。

DB

  • Realm

CoreDataと悩みましたが、主催という事で。
Realmも結局スレッドを超えるのが面倒なのがあれです。

アニメーション

  • Core Animation
  • XCPlayground
  • PaintCode

まずXCPlaygroundを利用して動かしました。星のパスはPaintCodeで作成しました。PaintCodeのファイルもプロジェクトに入っています。

Functional Reactive Programming

  • ReactiveCocoa

try! SwiftではRxSwiftが注目されましたが、以前からReactiveCocoaを利用しているので…

その他

  • Swiftz(のオペレータのみ利用)
  • R.swift

R.swiftもちらっと登場しましたね。

感想

Objective-C時代とは全く違う世界になってしまいました。長い事Objective-Cを使ってきましたが、少しさみしい気もします。ですが、まちがいなく楽しいです。

Swiftのフレームワークはまだ定番が定まっていない分野もあり、選択が難しいです。今回はtry! Swiftに関するものを利用しましたが、実際のプロジェクトで選定するとなると…パッケージマネージャも群雄割拠の時代に入りました。ふたつもみっつもパッケージマネージャを利用するのはできれば避けたいところです。

アプリは動きはしましたが、この書き方で良いのか、もっと良い書き方や正しい書き方があるのではないかと思いつつ書きました。更に情報が充実すると良いなと思いました。

来年はどこで開催されるのでしょう。英語を使いこなせるように頑張ります。
いや、まずSwiftを使いこなせるように頑張るんですが…

rizumita
iOSアプリを開発して生きています。
http://tech.caph.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした