【勉強会メモ】【大阪】LINE Developer Meetup #31
- 日時:2018/03/30(金) 18:30 〜 21:30
- 場所:TKPガーデンシティ大阪梅田
京都に新オフィスを設立予定のLINEの勉強会。今回は大阪で開催されました。
Javaとモバイル
Javaは古くからモバイルアプリの開発に使われてきた言語ですが、その変遷は意外と奥深く、色々な背景があったりします。断面的にはスポットが当たることがあっても時系列に並べてまとめられる機会は意外と少ないので新鮮でした。懇親会でも改めて経緯を知れるのは良い機会だったという話を参加者同士でしました。
Metal Framework
Apple独自のグラフィックAPIの話でした。古くからOpenGLが使われてきましたがMetalはApple専用に開発されたことで処理速度やメモリ共有の面で使いやすく高パフォーマンスが実現できるということのようです。残念ながらこの分野はあまり詳しくないので多くは語れません。
KotlinでDSL
Kotlinで手軽にDSLを扱うことができて、従来のUI周りのXMLで書く部分をコーディングしやすく可読性を高める手法がデモを交えて紹介されました。コードと一緒に扱うことで交互に背景色を変えるなどの動的な制御もリーダブルかつ簡単に実現できます。XMLがカオスになる危険を回避できるかわりにUIのコードがビジネスロジックと混ざってカオスになる危険は出てきそうなので、そのあたりをうまく設計する必要はありそうだと感じました。
New Java Things Mobile Developer Should Know
LINE Fukuoka: きしだ なおきさん
Javaとモバイル
1992 Green Project CPUやOSに依存しない
- 1999 Java ME
- CLDC…携帯電話やディスプレイを持たないデバイス向け
- MIDP…EZアプリ、S!アプリ
- Doja…iアプリ
- CDC…Blu-rayプレイヤーなどのディスプレイにつなぐデバイス向け
↑ここまでけっこう安定していた
Java SE8 Compact Profile
JavaSE自体がモバイルで使えるようになった
Compact Profile 1〜3、Full Profile
Java9
リリースサイクルの変更
Java10
Java11
- 2018年9月
- Oracle JDKとOpenJDKは同一バイナリになる
- Oracle JDKは無償提供されなくなる
- JavaFXはJDKにバンドルされなくなる
- HTTP Client API
- switch式(?)
半年単位でJavaの言語仕様もかわっていく
Javaのモバイル対応への私感
- モバイル専用プラットフォームの必要性が薄れている
- モジュール化
- デバイス性能の進化
モバイル用の実行環境が必要なくなる
AndroidとJava
Androidとは
Harmonyの挫折
Dalvik VM
Android Runtime(ART)への移行
ライブラリをOpenJDKに
Java8の言語仕様を導入
- 2014年Jackツールチェーンの発表
- jack
- 2017年Jackツールチェーン廃止
- 既存.classツールが利用できない
- desugar
- javac->desugar->dx
Ocaleの訴訟
Javaのモバイル実行環境
- OpenJDK mobile
- 2015年発表
- RoboVM
- Xamarinに買収されXamarinが買収されて終了
- Multi-OS Engine
- 2016年オープンソース化
- Gluon VM
- Java9対応
- OpenJDK mobile利用
- Codename One
- Gluon Mobile
- Java FXモバイル環境へ
- libGDX
- ゲーム用
- Multi-OS Enginに対応
まとめ
Lets have a look at Apple's Metal Framework
LINE Kyoto: Freddy Vogelさん
英語だったのと元々あまり詳しくない分野の話のため詳しいメモはありません。話を聞きながら参考にしたサイトをいくつか載せておきます。
Apple's Metal Framework
- 1981 OpenGL
- 1996 PC Game Quake
- 2004 OpenGL ES
- 2010 iPhone support OpenGL ES 2.0
- 2014 Metal
- 2017 Metal 2
※参考
Create your DSL with Kotlin
LINE Kyoto: Freddie Wangさん
※こちらも英語だったので詳しいメモはありませんがデモアプリの説明が中心でした。
What's DSL
- Improve
- Flexible design
- Code readability
SQL, Gradle, Regular Expression
Kotlin DSL in real world
Main features in Kotlin
- [Extension](https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/extensions.html
- Higher-Order functions
- Lambda with receiver
デモ用アプリ
まとめ