【リリース🎉】wordsMemoについて
作成したきっかけ
一番最初の自作アプリになるので、挫折しない規模感から始めて、まずはリリースを目指しました。その後のフィードバックを受けて改善予定でした。(そのため現在、改良中。)
そこで興味のあった語学学習のアプリを何か作ろうと思いました。
2020年からフランス語の学習を始めたのですが、名詞を覚えるために、紙に書いてマーカーで色分けをしていて、紙とインクが勿体無いことと、名詞を日常生活の中で気軽にメモしていきたいと思ったことが理由です。新しい言葉は、実際の生活で出会う中で覚えると思うので、ささっとメモできたらいいなと思っていました。
世間的には英語学習が人気なので、英単語アプリはよくありますが、フランス語に特化した単語アプリはAppStoreに見つからなかったので、フランス語学習者は意外と苦労しているのではないかと思ったのも理由の一つです。
環境
XCode 12.4
Swift 5.3.2
使用したライブラリ
CocoaPodsで管理しています。
- MBCircularProgressBar
- Charts
アプリの機能
- TableViewControllerでリスト表示
- 登録画面のスクロール
- チェックマーク
- チェックマークの有無で画面の切り替え
- チェックマーク数のグラフの表示
- 単語検索・編集・削除
- オートレイアウト対応
- CoreDataを利用したデータの保存
- 横画面・ダークモード対応
大変だったところ
- オートレイアウトの理解
オートレイアウトに関してはネット上の記事が少ないように感じ、何度もやり直してぐるぐるしてました。
iPhoneのサイズを理解し、基準を決め、縦画面と横画面を分けて考えることを意識して作りました。
そもそもレイアウトを一番最後にしましたが、一番最初に決めるべきでした。また、どんな機能を盛り込むなども作りながら決めていったことで右往左往したので、最初の設計が大切と学びました。
- デリゲートの理解
チェックマークの色を切り替えるということができずに、1ヶ月近く悩んでいました。このまま一人で考えていても挫折しそうだったので、メンター様にお伺いしました。その時に初めて、このような場合にデリゲートを使うのだとわかりました。
概念だけ知っていても使えるようにはならないので、自分でアプリを作ってみて、本当に勉強になりました。
- CocoaPodsの導入
Chartsというライブラリでは、過去5日分の日付を取れるようにしています。このライブラリの使い方がわかるまではどこに書けばいいのか手こずりました。ここでは、具体的に数値や言葉を入れてどこが変化をしていくか、まずライブラリの性質を把握することが大切だと学びました。
工夫したところ
- 単語帳や、単語アプリで性別を書かなくても、色を塗らなくてもボタン一つで完了するところ
- 誰でも使いやすいように、洋書のようなシンプルデザインにしました。デザインは、dribbbleというサイトを参考にしました。海外のアプリデザインが親しみやすくて好きです。
- ただ単語を羅列アプリにするのではなく、視覚的に達成感を感じて、学習を継続してもらえるようにグラフを二種類取り入れました。アプリは個人でカスタマイズできるものであって欲しいので、少しでも「自分専用のアプリ」感を出せるようにしたかったです。
今後やりたいこと
- せっかくなので、動詞や副詞などもメモできるようにしていきたいです。品詞をタブごとに分たら見やすいのではないかと考えています。
- 左上のトグルボタンが目立つので、デザイン変更を検討中。またCocoaPodsで導入しようかと思っていますが、ライブラリを使いすぎのような気もするので、慎重に検討します。
- ユーザーが色設定をカスタマイズできるようにしたいです。本当は、赤青緑ではなく、個人で好きな色に設定して欲しいので、対応していきたいです。
- 親指で気軽に登録できる位置にフロートで登録ボタンを付けたいです。フロートボタンにすることでレイアウトが全て崩れそうで手が出ませんでした。。勉強してます。
- テストコードを書きたいです。UnitTestをやってみるといいよと、他のエンジニアの方にアドバイスいただいたので、やってみます。
- エラーハンドリングを取り入れる。エラー処理でエンジニアのレベルがわかると伺ったので、勉強しているところです。
- デザインパターンを勉強する。iOS設計パターンの本を読んで勉強しています。
改善点が多くて、焦りますが、とても楽しいです!!