JSONExportにコントリビュートしました

投稿者: | 2016年9月29日

はじめに

モバイルアプリ開発では、WebAPIでJSONオブジェクトを取得することが多く、JSONオブジェクトをデータクラスに変換する処理が面倒になります。弊社アプリ開発では、AndroidでGSON、SwiftでUnboxを使用して、可能な限りこの作業を軽減するようにしています。
作業軽減を加速するために、JSONExportというMacOSアプリケーションを使用しています。

Githubはこちら
JSONExport : https://github.com/Ahmed-Ali/JSONExport

JSONExportとは

JSONExportはMacOS X用のアプリケーションで、JSONオブジェクトからコンバート用のクラスを自動生成することができます。
クラス生成時に次のような指定ができます。

  • 保存前に生成されるクラスのプレビューが可能
  • コンストラクタのみか、ユーティリティメソッドのみか、両方か、指定が可能
  • Rootクラスの名前を指定可能
  • 生成されるクラスのPrefixを指定可能
  • Javaの場合、パッケージ名を指定可能

Version 1.0.3では、次の言語をサポートしています。

  • Java for Android.
  • Java for Realm Android.
  • GSON for Android
  • Swift Classes.
  • Swift Classes for SwiftyJSON library.
  • Swift Classes for Realm.
  • Swift – CoreData.
  • Swift Structures.
  • Swift Structures for Gloss
  • Swift Mappable Classes for ObjectMapper
  • Swift Structures for Unbox
  • Objective-C – iOS.
  • Objective-C – MAC.
  • Objective-C – CoreData.
  • Objective-C for Realm iOS.

上記のうち、GSON for AndroidSwift Structures for Unboxをコントリビュートしました。

使用方法

JSONExportはApp Storeで配布されていないため、Xcodeでビルドしアプリケーションを生成する必要があります。

Git Cloneでソース取得

ソースを取得します。

XcodeでArchive実行

Xcodeを起動し、 Product → Archiveを実行します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-20-16-39-47

Exportでアプリケーションを保存

Archiveが成功すると、次のような画面が表示されるので、Exportのボタンを押します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-20-16-43-05

次のような選択画面が表示されるので、Export as a macOS Appを選択してNextを押します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-20-16-43-29

ローカルに保存すると、アプリケーションが使用できるようになります。

JSONオブジェクトからコンバート用クラス生成

次のJSONオブジェクトを、GSON for Androidのコンバート用Javaファイルを生成します。

Window左側のEntry your json dataにJSONオブジェクトを入力すると、Window右側に自動でクラス生成されます。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-20-17-08-04

次のようなソースコードが生成されます。

JSONオブジェクト中にオブジェクトが存在する場合、これも自動生成対象となりクラスを作成します。

右下隅っこのSaveボタンを押すと、ソースコードとして保存できます。

最後に

弊社アプリ開発では、GSONやUnbox以外にも多くのOSSを使用しています。無料ライセンスで公開されているものがほとんどで、その恩恵をうけてスピード開発が行えています。

OSSライブラリを使う以上、ただローカルで改変して使うのではなく、世界中でOSSを使う開発者が幸せになれるよう、コントリビュートすることを前提として使用するようチーム内で意識しています。

現在、クックビズでは新しいメンバーを募集しております!

このブログを書いているのはクックビズ株式会社の開発チームです。私たちと働いてみたいと思った方はWantedlyから話を聞きにきて下さいヽ(=´▽`=)ノ  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です