relux iOSアプリに Material Design 風のフォームを導入
relux iOSアプリにマテリアルデザイン風のフォームを導入しました。
マテリアルデザインのライブラリはMaterialKitが有名ですが
見た目がイメージしていたものと異なるのでスクラッチ開発しました。
実際のアプリケーションのスクリーンショットと交えながら紹介していきます。
マテリアルデザインとは?
Googleが発表したデザインガイドラインです。
詳しくはこちらを参照
Introduction - Material design - Material design guidelines
入力フォーム
フォームレイアウト
どのフォームも基本的に以下の要素で構成されています。
- タイトル
- 必須項目マーク
- テキストフィールド
- 下線
- アイコン
- エラーラベル
エラーの表示、非表示でレイアウトの高さがかわらないようになっています。
Androidのサポートライブラリでは高さが動的にかわるようになっていますが
レイアウトがガタガタかわると美しくないのであえて固定しました。
フォームの共通処理
必須項目制御
BOOLで必須項目を設定できるようにしています。
必須項目にするとフォーカスがはずれた際に
自動的に空か判定してエラーメッセージを表示するようにしています。
キーボード制御
AccessoryViewが自動で挿入されるようにしています。
「決定する」を押すとキーボードが閉じます。
キーボードのNext(Enter)を押すと次のフォームにフォーカスするようになっています。
次のフォームが存在しなければキーボードを閉じます。
次のフォームにフォーカスがあたると
自動的にスクロールされるようになっています。
ここの使用感はかなりこだわっってつくっているので
実際のアプリをダウンロードして触ってみてください!
フォームの状態
フォームの状態は以下の3種類です。
disabledは用意していません。
シンプルなデザインなので迷わないよう
disabledにするのではなく表示しないというルールにしています。
最後に
いかがでしたか?
iOSのフラットデザインとAndroidのマテリアルデザインの
良い部分を組み合わせることができたのではないかなと思います。
さらに良いユーザ体験を提供できるよう改善を行っていきます!
おまけ
今まで知らなかったのですがこちらのライブラリも良さそうですね。
github.com