post Image
iOSアプリのUIをAndroidライクに作成できるライブラリを作ってみた

iOS用のビューライブラリを作成したので初Qiita投稿書いてみました。
当方豆腐メンタルのためコメント、ご指摘はお手柔らかにしていただけると嬉しいです。
作成したライブラリ(SwiftJsonUI)
Wiki
ドキュメント書くのが辛すぎてwikiは所々手抜きになっている箇所もありますので英語力と合わせてご了承ください。

背景

XcodeでiOSアプリのUIを作成しようとするとAuto Layoutと毎回のコンパイル時間に悩まされて一向に作業が進まなかったので、なんとかして作業効率をあげたくて作成。

やりたかったこと

  1. 再コンパイルなしでビューの修正ができる。
  2. Auto Layoutを極力気にせず作成できる。
  3. Androidのxmlと近い記述方法で書ける。
  4. AndroidのData Bindingが便利なのでそれも実装したい。

実装内容

1. コンパイルなしでビューの修正ができる。

こちらはSocketIOを利用することに。
ローカルにサーバーを立ててそこでビューファイルの変更を監視、変更があればアプリに通知して自動でビューファイルをダウンロードし再描画するように実装。開発用の機能なのでdebugビルドでのみプロジェクトに含まれるように実装。
ローカルサーバー側はnode.jsで簡単なものを実装。

2. Auto Layoutを極力気にせず作成できる。

3. Androidのxmlと近い記述方法で書ける。

両方ともセットで解決。
xmlをiOSで扱うのが面倒だったのでファイル形式はjsonを選択。
記述方法はAndroidに寄せて作成。AndroidのLinearLayoutやRelativeLayout、match_parentやwrap_contentの仕様をそのまま使えるように実装。

4. AndroidのData Bindingが便利なのでそれも実装したい。

AndroidのData Bindingがビューとプロパティの紐付けやモデルのデータ反映など色々と便利なのでiOSでも同じ様な感じで使えるように実装。

おまけ

このライブラリで作成したiOS用のビューをAndroidのxmlに変換して書き出せるパーサーもライブラリに追加してます。
ruby parse_json_to_android_xml.rb で実行できますが、こちらはざっくりと作っているのでお好みで修正を加えてお使いください。
完璧に変換できるわけではないですが、ある程度近い表示はできるので作業時間短縮になるかと思います。

追記

サンプルアプリも作ってみました!
実装の流れも記事にしましたのでよろしくお願いします。


『 Swift 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。