リリース後の改善
作成したきっかけ
2020年からフランス語の学習を始めたのですが、名詞は性別とセットで覚える必要があり、すぐに忘れてしまい、他の単語と混ざってしまったりしてなかなか覚えられずに困っていました。世間的には英語学習が人気なので、英単語アプリはよくありますが、フランス語のアプリは無かったため同じように不便に感じている方がいるのではないかと考えました。
また、私はこれまで覚えるときは紙に単語を書いてマーカーで色分けをしており、紙とインクが勿体無いと感じていたので、クリックするだけで登録していけるものがあればいいなと考えたのも理由の一つです。
改善箇所
リリース後のフィードバックを受けて改善予定でしたので、今回はその機能を少し拡大しました。
期間は2週間と決め、Githubでissueを立てて問題解決・会員登録機能追加・ニュースフィード機能追加に取り組みました。
環境
XCode 12.4
Swift 5.3.2
使用したライブラリ
CocoaPodsで管理しています。
- MBCircularProgressBar
- Charts
- IQKeyboardManagerSwift(追加)
アプリの機能
- TableViewControllerでリスト表示
- 登録画面はScrollViewを適用
- チェックマーク機能
- スイッチでチェックマークの有無の切り替え
- チェックマーク数を判別できる二種類のグラフ
- 単語の検索・編集・スワイプ削除
- オートレイアウト対応
- 横画面対応
- ダークモード対応
- CoreDataを利用したデータの保存
- Firebase/ FireStoreを利用した認証とデータの保存(追加)
- 会員情報の登録・編集・削除(追加)
- API通信を用いた最新ニュース取得(追加)
大変だったところ
- オートレイアウトの理解
オートレイアウトに関してはネット上の記事が少ないように感じ、何度もやり直してぐるぐるしてました。
iPhoneのサイズを理解し、基準を決め、縦画面と横画面を分けて考えることを意識して作りました。
そもそもレイアウトを一番最後にしましたが、一番最初に決めるべきでした。また、どんな機能を盛り込むなども作りながら決めていったことで右往左往したので、最初の設計が大切と学びました。
- デリゲートの理解
チェックマークの色を切り替えるということができずに、1ヶ月近く悩んでいました。このまま一人で考えていても挫折しそうだったので、メンター様にお伺いしました。その時に初めて、このような場合にデリゲートを使うのだとわかりました。
概念だけ知っていても使えるようにはならないので、自分でアプリを作ってみて、本当に勉強になりました。
- ライブラリの使い方
Chartsというライブラリでは、過去5日分の日付を取れるようにしています。このライブラリの使い方がわかるまではどこに書けばいいのか手こずりました。ここでは、具体的に数値や言葉を入れてどこが変化をしていくか、まずライブラリの性質を把握することが大切だと学びました。
工夫したところ
- 単語帳や、単語アプリで性別を書かなくても、色を塗らなくてもボタン一つで完了するところ
- ただ単語を羅列アプリにするのではなく、視覚的に達成感を感じて、学習を継続してもらえるようにグラフを二種類取り入れました。アプリは個人でカスタマイズできるものであって欲しいので、少しでも「自分専用のアプリ」感を出せるようにしたかったです。
- フランス語のニュースに簡単にアクセスし、そこで出会った単語を登録できる
今後やりたいこと
- テストコードを書きたいです。UnitTestをやってみます。
- エラーハンドリングを勉強する。
- デザインパターンを勉強する。iOS設計パターンの本を読んで勉強しています。
- tab2のところにRxSwiftとMVVMの勉強を兼ねて、カードタイプで単語を判別できる画面を作りたいです。(別でミニアプリから始めてみます)