my-buffer
EAS Build
アプリのビルドをやってくれるサービス
Expo プロジェクト、React Native プロジェクトで使える
managed workflow、bare workflow といったほうがいい?
Expo をまったく使っていない素の React Native プロジェクトでも使える?
署名もやってくれる
internal distribution で簡単にチームにビルドを共有できる
ad hoc provisioning を使う
expo-updates
OTA updates
next generation expo build:[ios/android]
managed workflow を使っているかどうかに関わらず、任意のネイティブプロジェクトで使えるっぽい
EAS Priority Plan であれば使える
Once it graduates from preview it will become more broadly available.
feature preview じゃなくなるとフリープランでも使えるようになる?
app signing credentials
Android では keystore のことを指している?
iOS では provisioning profile と distribution certificate のことを指している?
Android app signing credentials
keystore
iOS app signing credentials
provisioning profile
distribution certificate
App Signing
automatically managed credentials
この文脈だと EAS 側で自動で管理するものを指すっぽい。Xcode のやつではなく
EAS Submit
Apple App Store と Google Play Store へアプリをアップロード、提出をしてくれるサービス
expo build で作ったビルドも使える
ドキュメントがけっこう親切に書かれている気がする。
GitHub Actions
CI/CD
正直 CI/CD よくわかっていないので CI/CD とは何ぞやという本を読みたいが、何らかのイベントを契機として何らかの処理を実行できるやつをシュッと作れるのは便利だというのはわかる
ビルド、テスト、デプロイ、パッケージ作成
ソフトウェア開発におけるあらゆるワークフローの自動化に使える
実行環境
Linux、Windows、macOS
やりますねぇ!
ワークフロー
ジョブ
ステップ
コマンド
アクション
様々なイベントに対応
push
第1章を読み終わった
複数のワークフローを作成できる
どういう順番で実行されるんや?
.yml と .yaml、けっきょくどっちが好ましいんだっけ。何か twitter で見た気がする。というか何で拡張子揺れしてしまったのか……
ファイル名は自由
ジョブごとにクリーンな環境で実行されるのか
ワークフロー単位かと思っていた
道を踏み外し、付録A コミュニティとあとがきを読んでしまいました
ユニットテストの実行、リントの実行
GitHub Actions の設定のバリデーターみたいなのってあるんかな
フォークしたときはどうなるのか
各ステップは異なるプロセスで実行される
ジョブとステップにタイムアウトを設定できる
タイムアウトした場合、処理はそこで停止するのか継続するのか
ジョブはデフォルトですべて並列で実行される
マジンガーZ。上から下に実行されるんかと
いくつか制約があるが定期実行もできる
Domain Modeling Made Functional
誰でも読める疑似コード → F# の型
Modeling Complex Data
複雑なモデルを AND と OR で表現した
代数的データ型
単純な型と AND と OR を使って複雑な型をつくる
代数的データ型で複雑なモデルを表現できる
Record Types、Choice Types
Integrity and Consistency in the Domain
valid、consistent
integrity (validity)
a piece of data follows the correct business rules
consistency
different parts of the domain model agree about facts
integrity と consistency をどうやって確実 (保証) にするか
smart constructor approach
units of measure
invariant
不変条件
verified, unverified
flag, state
いつ、どういう理由で値がセット、アンセットされるべきなのかがわかりにくい
ビジネスルールのチェックにも型システムを使う
1つのものとして扱うのではなく choice type を使って分ける
invalid な値が混入する余地があるとビジネスルールは容易にぶっこわれる
整合性
集約
bounded context
write off the cost
eventual consistency
結果整合性
MoneyTransfer という型をつくったらいいやないか
なるほど。これがイミュータブルデータモデリングでいうイベントか
やっぱりいい本だと思う
Safe Area
SafeAreaView
コンテンツを Safe Area 内にレンダーする
アプリのバージョン表記
Slack
21.02.20
食べログ
8.44.0
Chatwork
5.21.0
Pocket
7.28.7
SoundCloud
5.118.0
Dropbox
224.5
212.2.2
note
5.3.0
LINE
11.2.0
Overcast
2021.1
回数っぽい。2021年の1回目のリリースみたいな
5.1.2 (途中まで)
RubyMine (JetBrains)
2020.3.2
2020.3
2020.3 の部分がメジャーバージョンらしい
ビルド番号
203.7148.67
マネーフォワード ME
13.6.12
Spotify
8.6.6
エラー処理
Exceptional C++