レギュラートーク(20分)

BitriseからXcode Cloudに移行してみた

lovee 星野恵瑠

アプリのCIサービスとしてBitriseはそれなりに定着してきてますが、アップル自身もXcode Cloudをベータリリースしており、そして今年正式リリースされると予想されます本日のWWDCで正式リリースしました。

ちょうどBitriseが料金体系を改訂して従量課金しかなくなったからトライ&エラーのコストが高くなるからメリットが非常に薄くなるし、何よりアップル本家が作っているという安心感(?)。

というわけで、これまでBitriseで回してたプロジェクトを、試しにXcode Cloudに移行してみたので、その過程をみなさんと共有したいです!

8
LT(5分)

バックエンド未経験のiOSエンジニアが、主流のServer Side Swiftのフレームワークを一通り試してみた

lovee 星野恵瑠

みなさんご存知の通り、Swiftはオープンソースになってから、すでに汎用目的のプログラミング言語としてある程度の発展を遂げてきました。特にサーバサイドでの利用は意外と探せばメジャーなプロダクトでも採用例があったりします。

ところがServer Side Swiftを始めたい時、フレームワークを選ぶ必要がありますが、アップル謹製のいわゆるファーストパーティーライブラリーは存在しないため、複数あるサードパーティーライブラリーから選定する必要があります。

さて、一体どのフレームワークが一番私に適しているかな?一番熱いVapor?一番大きな会社がバックしてるsmoke-framework?それとも一番老舗であるPerfect?

このLTはこれらのフレームワークを一通り試してみた感想を伝えたいと思います!

6
レギュラートーク(20分)

F**king SwiftUI

lovee 星野恵瑠

Storyboard辛い!Auto Layout難しい!でもSwiftUIのおかげでこれらとおさらばだ!!

そんな甘い思い、私にもありました…まさに若さゆえの過ち…

そう、SwiftUIがリリースして3年経った今でも、まだ我々はレイアウトのナイトメアから解放されていません…

この発表は、そのSwiftUIにまつわってよくある落とし穴やぶつかりやすい壁を紹介し、それらの理由と正しい回避策をお伝えしたいと思います!

6
LT(5分)

F**king SwiftUI

lovee 星野恵瑠

Storyboard辛い!Auto Layout難しい!でもSwiftUIのおかげでこれらとおさらばだ!!

そんな甘い思い、私にもありました…まさに若さゆえの過ち…

そう、SwiftUIがリリースして3年経った今でも、まだ我々はレイアウトのナイトメアから解放されていません…

このLTは、そのSwiftUIのあるあるな罠を紹介し、そしてそれらの回避策をお伝えしたいと思います!

4
レギュラートーク(20分)

Danger-Swiftはいいぞ

lovee 星野恵瑠

チーム開発を経験されてるあなた、「静的チェック」は聞いたことあるでしょうか?そう、CIを回す時に、Lintを適用するとか、スペル確認を行うとか、そう言った機械的なチェックを行うことです。

そしてある程度の経験がある方でしたら、DangerというRuby制のツールを聞いたことある、あるいは今でも使っている方もいらっしゃるではないでしょうか。

実はそのDanger、本来はRubyでスクリプトを書かないといけないですが、Swiftでスクリプトを書くDanger-Swiftも存在しているんですよ!

この発表はSwift信者として、そのDanger-Swiftの良さを全力で伝えたいと思います!

5
レギュラートーク(20分)

Swiftlaneの布教

lovee 星野恵瑠

みなさん、証明書管理やデプロイなど何使ってます?やはりFastlane?ですよねーFastlane便利ですもんね

でもFastlaneはRubyで書かないといけないからそこ大変ですよね、Rubyは型が保証されないから使うときドキドキするし、初心者がそもそもRubyの導入で躓きやすいので。

というわけでSwiftlaneを使ってみてはいかが?我々iOSエンジニアが使い慣れてるSwiftで書けるからとっても書きやすいですよ!はいこの発表はSwiftlaneの布教です!

5
レギュラートーク(20分)

Carthageのビルド時間を爆速に!〜Rome導入のススメ〜

zizi4n5 Shingo Takagi

Carthageでビルドしたframeworkを共有キャッシュとしてS3などで管理できるツールのRomeがついにXCFrameworkにも対応しました。
Swift Package Manager対応のライブラリも増えてきていますが、まだまだCarthageを利用されている方もいると思います。

今回はRomeに関する以下の内容について、具体的な設定ファイル、スクリプトコードを用いて説明します。

・共有キャッシュの導入することでビルド時間をどれだけ短縮できるか
・XCFrameworkを共有キャッシュとして、S3およびローカルドライブで管理する方法
・(現状のリリース版に残っている)Romeのバグに遭遇した際の対応方法

1
レギュラートーク(20分)

脱Rubyのススメ

lovee 星野恵瑠

iOSアプリ開発の周辺技術としてRubyは非常に人気な言語です。パッケージ管理のCocoaPods、静的検査のDanger、そしてCI/CDスクリプトのfastlaneなどなど、Rubyは幅広く使われています。

しかし初心者にとってRubyも一つの鬼門なのです。たとえば誰でもPermission Denied問題に一度は会ったことあるでしょう。右も左も分からない初心者がネットで検索するとすぐ「sudoすれば上手くいくよ」と悪魔の囁きを目にします。怖いですね。

というわけでRubyを開発過程から排除できないか?誰でも簡単にできるより安全な環境構築の仕方ないか?この発表はその脱Rubyの仕方をお伝えします。

3
レギュラートーク(40分)

Swift以外使ってはいけないiOSアプリ開発

lovee 星野恵瑠

え?Swift以外使わないのは当たり前じゃね?って思ってるあなた、環境構築やCI/CDのこと忘れてるかな?

そう、これまで我々は周辺技術としてRubyやZshをたくさん使ってきました。でも安全性が高いSwiftに慣れてきた我々は、やはりSwift使いたいですよね!

というわけで、この発表はSwiftだけで環境構築やCI/CDスクリプトを書く方法をお伝えします!

7
レギュラートーク(40分)

タイトなスケジュール下で行う爆速開発術

AkkeyLab AkkeyLab

開発期間に余裕がないとき、細かいアニメーションはバッサリ切り捨てられることが多いかと思います。そして、チケットには「2次リリースで対応」なんてメモを残して実装されることはなかった…なんて現象に遭遇したことはありませんか?
このような経験を元に、新機能を3ヶ月という短期間で集中開発した際に培ったノウハウを伝授いたします。

・Moya 利用時の Stub 活用術
・XcodePreviews 活用術
・アニメーション処理の共通化術

まずは、バックエンド開発待ちという状態ゼロを実現させます。次に、XcodePreviews を利用することで、頻度高くレイアウト・アニメーションをデザイナー確認できる環境が整います。
最後に、共通化によってアプリ全体で統一した操作感に仕上げることが可能となります。

AkkeyLab の原稿ともリンクしていますので、明日からでも実践・成果を実感していただけます!

2
LT(5分)

swizzlingではじめるコードリーディングのすすめ

beowulf_tech k2moons

swizzlingと聞くと、「ああ、使い道のない変な機能」と思われるかもしれません。
実際swizzlingでぐぐると「共通の処理を実装する」とか「共通処理を差し込む」といった文脈で説明されることが多いです。

このLTでは、実装ではなく、コードリーディングに用いることで処理の流れを容易に掴むことができ、ソースコードの理解が効率化される事例を紹介したいと思います。

7
LT(5分)

Apple Platformエンジニアとして、そして父親として

itaru_sugimoto 杉本 至

iOSエンジニアとして、Apple プラットフォームエンジニアとしてそろそろ10年が経とうしてしています。
そして私は2人の娘と5歳の発達障害の息子を持つ父親でもあります。日々進化し続ける開発技術についていけず悩む日々でもあります。
コロナ禍においてリモートワークが導入され柔軟な働き方ができるようになり、家族とより近くなりありがたくも大変なこともあるようになりました。
私以外にも激動の日々を送る方がいらっしゃると思います。悩みつらみがありつつソフトウェアエンジニアとして壁を乗り越えることの難しさや、その中でSwiftや開発者コミュニティに提供できるものとは何なのかについてお話します。

5
LT(5分)

Findy Teamsエンジニアリングチームの生産性を可視化してみた

novr 古宮伸久

Findy Teamsを使ってエンジニアチームの生産性を可視化し、改善に取り組んだ話

5
レギュラートーク(20分)

Firebase Crashlyticsのべすとぷらくてぃす

novr 古宮伸久

普段とりあえず入れて何気なく使われているCrashlytics
CrashlyticsはCrash検知だけでなく、Error・Bug検知にも使えます
本当は必要なErrorを取り逃がしていませんか?
Errorの設計や、実装方法と活用を紹介します

5
レギュラートーク(40分)

SwiftUI版Atomic Designを用いての責務分担を明確化してみよう!

MHTcode_chibird 千葉 諒

SwiftUIでAtomic Designを使った特の責務分担の考え方と役割について説明していきます。

  1. Atimic Designとはなにか?
    • Atomic Designの説明
  2. なぜSwiftUIでAtomic Designを利用するメリットの説明
    • SwiftUIでAtomic Designを使用すると解決できる問題
  3. SwiftUIでAtomic DesignにUIを切り分ける実例
    • SwiftUIで実際のコードを見ながら切り分ける実例を紹介していきます。
  • ターゲット
    1.Swiftを学び始めたけどファイルの細分化をどの単位でしていけばいいのかがわからない
    1. 同じコードをいろいろな場所で何度も書いてしまっている
    2. webフロントの開発を今までやっていてこれからSwiftを学習しようと思っている
2
レギュラートーク(20分)

Flutterでも好きなパッケージ管理ツールを使いたい! 試してみてわかったこと

MHTcode_chibird 千葉 諒

Flutterで利用したアプリケーションでは初期状態だとパッケージ管理ツールはCocoaPodsが設定されます。
今までSwiftで開発をしていた人はCocoaPodsだけではなくCarthageやSwift Package Managerを利用している人もいると思います。
実際に試してみた

  1. パッケージ管理ツールの簡単な説明
  2. Flutterに好きなパッケージ管理ツールを導入する方法
  3. パッケージ管理ツールを入れる際の注意点
  4. Flutterにおいてのパッケージ管理ツールの現状
  • ターゲット
    1. Swiftで今までアプリ開発を行っていてこれからFlutterのネイティブ実装をする可能性がある人
    2. パッケージ管理ツールにこだわりがある人
    3. Flutterでパッケージ管理ツールを変えられるか知りたい人
レギュラートーク(20分)

【ABテストまわしてこ!】Firebase Remote ConfigでひたすらABテストを回して得た知見をお届け

ohayoukenchan ohayoukenchan

mamariではオンボーディング強化のため、昨年末からFirebase Remote Configを用いたABテストを繰り返しています。
このトークでは、ABテストを継続的に続けることで得た知見をできるだけシェアしたいと思います。

  • mamariではどのようにFirebaseでのABテストをどのようにアプリに組み込んでいるか
  • Firebaseに送信できるユーザープロパティ上限25個しかないのですぐ引っかかってしまうのでチームを巻き込んで整理した話
  • Custom Definitionsを用いたAudience作成がわかりづらく意図しないセグメントになってしまった話
  • オンボーディング途中で送信したEventを用いてAudienceを割り振ろうとしても割当が間に合わないのでその対策
  • 施策全体を通してどんな施策が効果があったのか
    ABテストまわしてこ!
9
LT(5分)

新卒1年目でネイティブアプリを3つFlutterにリプレイスした話

tkn_sei58 セイ

21卒で元々iOSエンジニアとしてエキサイト株式会社に入社し、エキサイトニュース、ローリエプレス、エキサイト翻訳のFlutterリプレイスに携わらせてもらいました。弊社としてはさらにアプリで攻めていくために選んだFlutterへのリプレイスです。
その中で生まれた

  • アプリ開発組織としてや実際のリプレイス部分における苦悩やそれに対する改善点。
  • ネイティブだったらここでつまづかなかったのにという点。
    以上2点について話していきたいと思います
レギュラートーク(20分)

継続的サービス品質改善のためのiOSアプリのモニタリング

増住 啓吾

モニタリングはサービスの開発・運用において重要な要素です。
しかし、ノウハウがある程度確立しているバックエンドやインフラ領域に比べ、クライアントサイドではまだ事例が少ないこともあり、手探りの運用にならざるを得ないケースが多いのではないでしょうか?
本トークでは、バーチャルライブ配信アプリ「REALITY」の事例から、指標収集のための実装や、FirebaseやBigQueryなどの外部サービスとの連携など、継続的品質改善のためのiOSアプリのモニタリング手法についてお話しします。

  • クラッシュレポートの収集と分類 〜Unity as a Library構成アプリの事例から〜
  • オブザーバビリティ向上のためのエラーログ構造化
  • アプリアイコンタップからコンテンツ表示までの"起動時間"
  • ライブ配信中のサーマルスロットリング状況
  • 品質改善&維持のための運用&監視
レギュラートーク(20分)

CoreBluetooth 2022

coffeegyunyu 日向強

iOSで無線通信 Bluetoothを扱うために存在するCoreBluetoothはiOS 5.0の時代からある歴史のあるものです。

昔触ったことのある人であれば、CoreBluetoothは一部のBluetoothの用途でしか使えない、ごく機能の限られたもの、という印象があるかもしれません。
しかし最近のCoreBluetoothは新規のAPIの追加という形では少ないものの、LE 2M PHY対応やBR/EDR向け対応など、できることは確実に広がっています。

そんなiOSのBluetoothに関して、2022年現在改めてCoreBluetoothではどういったことが実現できるのか、CoreBluetoothについて紹介し、iOSの無線通信の可能性を見出すトークとする予定です。

4