はじめに
swiftはほとんど未経験ですが、SmartNews風ニュースアプリを作ってみて、その過程をさらしてみようと思います。
同じような境遇にいる方の参考になれば幸いです。
作成中のアプリ
現在の進捗はこんな感じです。投稿の方が追いつかなくなっていますが、随時追記します。。。
ソースコードはこちらに晒しています。
tjnet/NewsAppWithSwift: News App like Smart News
今後の予定
長くなるので、今後、何回かに分けて次のような記事を書いていこうと思います。
- プロトタイプ作成 [公開しました!]
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(2) - 横スクロールするメニューバーを実装
- メニューバーの外観をSmartNewsライクなものに更新 [公開しました!]
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(3) - PageMenuライブラリを改造して外観をブラッシュアップ
- Carthageを用いた通信用ライブラリの導入 [公開しました!]
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(4) - Carthageを用いてAlamofireとSwiftyJSONを導入する
- App Transport Securityに対応 [公開しました!]
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(5) - ニュースアプリにおけるApp Transport Securityについて考える
- 記事の一覧/詳細/サムネイルを表示
- [swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(6) - Alamofire + Object Mapper + Realm + SDWebImageで最低限動くニュースアプリを作る] (http://qiita.com/tjnet/items/2a51c655cbc1d9b3000b) [公開しました!]
- 関心事を分離する
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(7) - MVVMで関心事を分離する手法を学ぶ[公開しました!]
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(8) - RxSwiftを用いてMVVMを実装する[公開しました!]
- テストを書く
- swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(9) - DIとMockを使用したテストを書く [公開しました!]
前提知識
事前に読んでおくと良さそうなリンクをまとめてみました。
UI component
簡単なサンプルアプリ'FoodTracker'を使用して、シンプルなUI elementsの作成/編集/配置方法や、ストーリーボードのpreview機能の使い方を学ぶことが出来ます。
Auto Layout
- Auto Layout Tutorial in iOS 9 Part 1: Getting Started
- Auto Layout Tutorial in iOS 9 Part 2: Constraints
Auto Layoutを用いて、複数のデバイスサイズに対応するアプリを作成する手法を学びます。アップデートされてiOS9, Xcode7, Swift2に対応しています。
Page view controller
Page View Controllerはアプリの概要を説明する為の、ページングするチュートリアル等を作成する為に使用します。ここでは公式ドキュメントでPage View Controllerの中身について理解します。実際の実装については、ググればいくらでも出てくると思います。
APIとの通信
APIを叩いて、JSONをパースする手法を学びます。
ちょっと古い記事ですが、こちらも参考になりそう。
デバッグ技法
Xcodeが提供するデバッグツール、パフォーマンス解析ツールを紹介しています。
重なり合うviewの状態やsizeを、Xcodeを用いて視覚的に把握する手法を学びます。
これを知っているだけで、開発中のアプリケーションの理解度やデバッグの効率がかなり変わってくると思います。
Realm
Realmの使用を検討しています。ネットワーク経由で取得したニュース記事をパースしてDBに保存し、DBに保存したデータをTableViewに表示、という流れで実装してみたいとと思います。
UIViewControllerのライフサイクル
UIViewControllerのライフサイクルに関与する主要なメソッドについて学びます。
Applicationのライフサイクル
iPhoneアプリのライフサイクル、エントリーポイント、Main Run Loop、スレッドなどについて学びます。
SmartNews風のUI
- 【iOS】スクロール可能なメニューバーを持つViewControllerをオープンソースとして公開しました
- recruit-mp/RMPScrollingMenuBarController | GitHub
Objective-Cで実装されているライブラリです。リクルートの方が作成されているようです。
-
[iOS] SwiftでSmartNewsみたいな、横スワイプで画面を切り替えるライブラリを作りました
UIPageViewControllerで実装されているライブラリです。swift製です。 -
[【iOS】複数のtableviewとCoreDataを用いて、APIから取得した記事をカテゴリごとに分類する【SmartNews風】]
(http://tjnet555.hatenablog.com/entry/2014/11/30/155914)
...
ニュース記事のソース
このあたりを使っても面白そうです。