- wantedlyのアプリを参考にし,検索バーを追加してインクリメンタル検索にした.
- ブックマーク機能を実装した.
- タブの切り替えにより,記事検索画面,ブックマークした記事画面を移動できるようにした.
- ブックマーク記事はUserDefaultsを用いて,端末に保存するようにした.
- 検索画面と表示画面という構成ではなく,検索バー付きのテーブルビューにしたところ.
- Parchmentライブラリを使用して,tabでメインの記事画面とブックマークした記事一覧画面を移動できるようにしたところ.
- 画像は提供されているAPIでは取得が難しかったが,画像も表示できるようにしたところ.
- インクリメンタル検索であるところ.
- ブックマーク記事の情報を格納する構造体を要素にもつ配列をデータベースやUserDefaultsに保存して,ブックマーク画面で無駄にAPIを叩かないようにすること
- キーワードを登録して,複数のキーワードで記事を検索することができる機能.
- 例
- キーチェーン
- Notificationの活用
- NotificationCenterを使うと,VC間通信を行うことができ,それと同時にデータも送信できる.
- リソース管理ライブラリによる文字列管理
- ハードコーディングによるスペルミスや、画像、ストーリーボード、セル、UserDefaultsなどのリソースを呼び出す時に、コード補完で作業の生産性を向上させてくれるもの
- R.swiftとSwiftGenの導入方法とどちらを採用した方がいいのか
Connpassが提供するAPIを使用して,記事を検索するアプリを作成してください. 独自の機能を追加して使いやすくしてください.
からくり株式会社 iOS 3dayサマーインターン(ハッカソン)の本番課題です。 下記の概要を詳しく読んだ上で課題を取り組んでください。
- Githubにて
Use this template
を使用し、個人のリポジトリにコピー(publicにして下さい)して課題に取り組んでください。 コーディング規約: - 標準的なコーディング規約であればどれに準じても良いですが、例として参考リンクを載せます。
Connpassの記事を検索するアプリです。
- Xcode: 11.6
- Swift: Swift5系
- Target iOS Version: 12.0以上
※パッケージ管理ツールはCarthage、LintツールはSwiftLintを導入しています。
- iPhone 8、 iPhoneX系、 iPhone11系のシミュレーター、もしくは実機での確認を推奨しています。 (iPadやiPhone SEなどの画面サイズには基本対応しなくて構いません)
- Xcodeのコマンドラインツールのバージョンを設定して下さい。
error: unable to find utility "xcodebuild", not a developer tool or in PATH
というエラーが出た場合はこちらを参考にして下さい。
install.shをつかうことでビルド環境を作成できます。
cd [自身の作業ディレクトリ]/intern_homework_ios
sh install.sh
~~~~~~(内容を確認したら)~~~~~~
open intern_homework_ios.xcodeproj/
~~~~~~(xcodeを開いたら)~~~~~~
xcode上で command+R でビルド
※install.shでSwiftLint
とcarthage
のアップデート(インストール)を行っている。
- ローカルでビルドできている
- 動作確認までしている
- SwiftLintで出力されている警告はなるべく削除する
- master
- プロダクトとしてリリースするためのブランチ。リリースしたらタグ付けする。
- develop
- 開発ブランチ。コードが安定し、リリース準備ができたら master へマージする。リリース前はこのブランチが最新バージョンとなる。
- feature
- 機能の追加。 develop から分岐し、 develop にマージする。
- release
- プロダクトリリースの準備。develop ブランチにリリース予定の機能やバグフィックスがほぼ反映した状態で develop から分岐する。 リリース準備が整ったら, master にマージし、タグをつける。次に develop にマージする。
- hotfix
- リリース後のクリティカルなバグフィックスなど、 現在のプロダクトのバージョンに対する変更用。 master から分岐し、 master にマージし、タグをつける。次に develop にマージする。
項目 | ツール名 |
---|---|
APIクライアント | Postman, Pawなど |
HTTP通信キャプチャ | Charles |
Gitクライアント | Source Treeなど |