Slide 1

Slide 1 text

iOSDCまでにGitHub Actionsを 公開できたのか
 2024/08/24 (土)
 iOSDC 2024
 Kyash Inc. @konifar
 〜 初めてのiOS関連GitHub ActionsをMarketplaceに公開するまでの実録 〜


Slide 2

Slide 2 text

多言語対応のための Localizable.strings の簡易Linter
 以下のようなミスを検知できて便利 - jaのファイル内のキーに対応するキーがenのファイル内にない - jaのテキスト内の%1$dなどの置換文字の個数がenの同じキーの個数と違う - “100%% OFF!” が “100% OFF!” になってる https://speakerdeck.com/konifar/ios-i18n-linter 


Slide 3

Slide 3 text

https://speakerdeck.com/konifar/ios-i18n-linter 


Slide 4

Slide 4 text

作ることなく早10ヶ月😇
 「ライブラリ作るかもしれません」は「飲み会行けたら行く」と同じ

Slide 5

Slide 5 text

締切のないやりたいことは
 締切のあるやるべきことに
 勝てない


Slide 6

Slide 6 text

5/25 (木) 締切を作りにiOSDCにトーク応募


Slide 7

Slide 7 text

その結果...


Slide 8

Slide 8 text

https://github.com/marketplace/actions/lint-localizable-strings 
 公開しました🚀


Slide 9

Slide 9 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択

Slide 10

Slide 10 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択 2ヶ月何をしていたのか?


Slide 11

Slide 11 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択

Slide 12

Slide 12 text

[6/11 〜 6/30] まだ大丈夫期
 - 期末で本業がたいへん - まだあわてるような時間じゃない - 7月になったら本気出す

Slide 13

Slide 13 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択 まだ大丈夫

Slide 14

Slide 14 text

[7/1 〜 7/5] 第一やるぞ期
 - スクリプトを見直し、抽象化すべき箇所を洗い出し - GitHub Actionsの公開方法を調査 - だいたいやることの目処がついて安心し、まだ大丈夫期が延長

Slide 15

Slide 15 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択 まだ大丈夫 やるぞ

Slide 16

Slide 16 text

[7/10 〜 7/19] 第二やるぞ期
 - GitHubリポジトリを作成し、基本実装は完成 - 細かいところを修正し、あとは公開するのみの状態に

Slide 17

Slide 17 text

という夢を見ました


Slide 18

Slide 18 text

[7/10 〜 7/19] 第二やるぞ期 肺炎でダウンし入院期


Slide 19

Slide 19 text

人生について考え始める
 「今これをやっていていいんだっけ?」「そんなに優先度高いんだっけ?」

Slide 20

Slide 20 text

こういう葛藤があっても
 締切があればできる


Slide 21

Slide 21 text

5/25 (木) トーク応募 8/17 (土) Actions公開 8/24 (土) iOSDC 6/11 (日) トーク採択 人生とは まだ大丈夫 やるぞ 入院

Slide 22

Slide 22 text

[8/15 〜 8/17] 真・やるぞ期
 - GitHubリポジトリを作成し、ガッと作る - 締切が決まってるので、開発中の葛藤をすべて処理して公開へ - 本業のKyashプロジェクトもライブラリを使ったCIに置き換え

Slide 23

Slide 23 text

ライブラリ開発中にありがちな葛藤
 - これ意味あるのかな... - こんなレベルで公開して大丈夫かな...

Slide 24

Slide 24 text

たいてい無視していいので
 まずはやりきってみる


Slide 25

Slide 25 text

- 「そもそもユースケース限られてるし意味あるのか...」 - 使えるケースだけでもカバーできていれば上等。 何でもできるよりむしろよい - 「こういうオプションもつけないと使えないのでは...」 - Issueが上がってきたら考えるで OK。皆で作っていけるのが公開のよいところ - 「調べてみたらそもそも別のやり方の方がいいのでは...」 - 不可逆な部分だけ見極めること。 バージョン切って公開すればあとでいくらでも変えられる - 「もっといい実装方法があるんじゃないだろうか...」 - キリがないのでキリをつけるしかない。 公開しようとしているから勉強して成長している - 「もっとよくしてから公開しないとこわいし恥ずかしいな...」 - そこまでコード見てもらえるなら上等。 指摘できる人はきっと Pull Requestを出してくれる (割愛) ライブラリ開発中にありがちな葛藤詳細


Slide 26

Slide 26 text

後でやればよいという割り切り
 - 不慣れな Ruby コードは GitHub Copilot と ChatGPT で修正するのみ - Linter の設定ファイルやオプション指定は未対応 - danger や reviewdog などのPull Request中のコメントは未対応 - 無駄な計算によるパフォーマンス懸念の改善は未対応

Slide 27

Slide 27 text

https://github.com/marketplace/actions/lint-localizable-strings 
 公開しました🚀


Slide 28

Slide 28 text

ありがとう締切
 ありがとうiOSDC


Slide 29

Slide 29 text

皆さんのプロジェクトにも
 便利な自作スクリプト/ライブラリが
 きっとありますよね


Slide 30

Slide 30 text

それらOSSのタネが開花する
 きっかけになれば嬉しいです🌸


Slide 31

Slide 31 text

そして、次の締切が始まるのです
 danger、reviewdog 対応を9月中にやります💪

Slide 32

Slide 32 text

ありがとうございました