12月6日に行われたMobileActOsaka #12 に参加してきました。
MobileActOsakaはフェンリル株式会社 大阪のメンバーが行なっている勉強会で、以前は自分もスタッフ ( 名前だけ ) として参加させていただいてた勉強会です。
せっかくなので浜松から新幹線に乗って行ってきました。大体2時間くらいでいけるので読書してたらほぼワープしてるようなもんですね。
そしてせっかくなのでとったメモをブログに残そうかと思いました。相違などありましたらTwitterもしくはコメントで指摘お願いします🙇♂️
fukumotoさん「ハイブリッドアプリの危険な動向」
発表途中で入室したため、序盤聴けてないです。
- UIWebViewは近々死ぬ
- WKWebViewを使う
- Cordova-ios5.x はUIWebView
- MonacaはCordva-iOS5
- WKWebViewに差し替えるプラグインがある
- 他のプラットフォームはやる(play)がAppleはやる(kill)
今回登場したメタルバンド
- カンニバル・コープス
- Apocalyptica
- Manowar
dnjiroさん「C言語アプリ9VAeをDXライブラリでAndroidアプリにした話」
- 9VAE( きゅうべえ )
- SVGイラストに動きをつける
- Xamarinは諦めてDXライブラリで作成
- DXライブラリはAndroid版、iOS版が出ている
- https://dxlib.xsrv.jp/dxdload.html
- メニューとかダイアログがないのでJNIでJava使う
- ありえないターゲットバージョンを指定するとなぜか64bit対応できる
Property Wrappers入門
- Property Wrappersとは SeiftUIとかcombineで出てきたアノテーションみたいなやつ
- Swift5.1以降で動く iOS12以降ならうごく
- 遅延初期化 late init みたいなものも書ける
- wrappとvalueで
- UserDefaults にも使える
- 禁止事項多数
- protcol や Extensionで使えない
できるだけソートしないで済むアルゴリズム
- 標準ライブラリで実装されているsortライブラリ
- 計算量O(N log N) になっている
- 上位のk個だけ取り出したい → 配列の要素を取り出したいのに、配列全体をsortするのは無駄じゃない?
- QuickSelectアルゴリズムを使えばいい
- 平均計算量は O(N)
- sortは要素が増えるほど計算時間が増える
- sortから添字アクセスをすると 7ミリ秒、QuickSelectなら 0.9ミリ秒でできた
Spark AR であそぼう
- Facebook 製 Spark AR Studio
- Snowみたいに顔にテクスチャを貼ることができるものを簡単に作れる
- 顔を振るなどのイベントをつけることができる
- 今年のフェンリルのクリスマスカードはARコンテンツがついているらしい
Overview of Swiftc
- オープンソースでコンパイラも見ることができる
- Swiftコンパイラのだいたいの流れ
- Parse
- トークンにパースする
- AST
- Sema
- SILGen
- SILを生成
- 2段階
- コンパイラで一番大きいモジュール
- SILOptimizer
- オプションをつけると結果が変わるよ
- IRGen- LLVM
- オブジェクトファイルを吐き出す
- Parse
SwiftからRustを召喚する
- Rustで書かれた機能をSwiftで実行する
- RustのFFI機能を利用する
- RustコードをCコードとしてエクスポート
- CのコードをSwiftが実行できる
- Deepdififf
- Rustめっちゃ早いよ
プログラミング言語(?)を自作した話
- Github Actionでやりたくなったから自作した
- 自作アクションでSlackに通知したいときに
- テキストをJsonに変換可能なActionがあったら便利
- コンパイラの大体の流れ
- ソースコードを読み込みトークンに分解
- トークンから構文解析
- 構文解析したものからオブジェクトを生成
まとめ
今までスタッフとして参加していたのですが、今回はじめてずっと座った状態でメモを取りながら参加。
Mobileと言いながらも言語にフォーカスしていたり、自分の全く知らない技術、気になっていたけど試したことがないツールや技術の話が聞くことができる。
改めてこの勉強会は面白いなと思いました。次回は2月14日らしいです。