採択
2022/09/11 12:00〜
Track C
スポンサーセッション(20分)
スポンサーセッション

iOSライブラリをセルフサービスで生成する仕組み

junkpiano Yusuke Ohashi

弊社では様々な自動化の仕組みに取り組んでいますが、その中でiOS/Androidのライブラリ、特にAPIクライアントについて、セルフサービスで生成する仕組みについて話したいと思います。

ほぼ全てのアプリで欠かせないのがRESTを主としたAPIサーバーと対話するネットワーキングの実装だと思いますが、APIごとに毎回同じような開発をするのは非効率的です。そこで目をつけたのがOpenAPIでした。

OpenAPIとはAPI設計を行う仕様のことですが、このトークでは、OpenAPIを元にしたコード自動生成からデプロイまでを開発者が1行もコードを書かずに生成できるようにした過程を紹介します。
また、中〜大規模チームでのOpenAPI導入の背景やメリットに触れると共に、開発者の要望に応じて、生成されるコードをどうカスタマイズしたかなどもお話ししようと思います。

採択
2022/09/11 12:00〜
Track D
スポンサーセッション(20分)
スポンサーセッション

Kotlin Multiplatform Mobile でiOSとAndroidの実装差異を無くす

hal8563 新田 陸

iOSアプリと一緒に、Androidアプリを作成することはよくあります。
2つのアプリを同時に開発すると問題がよく起きます。「iOSとAndroidで動きが違う」と。
実装するエンジニアの認識のズレ、言語仕様の違い、例えどれだけ念入りにやったとしてもこの問題はいつか必ず発生することでしょう。

そのような問題をKMM(Kotlin Multiplatform Mobile)を用いて解決します。
アプリのビジネスロジックをコードレベルから共通化し、OS間での差異が起こらないような開発ができる上に、ビジネスロジック部分の記述はKMM一つで済むようになります。

このセッションでは、基本的なKMMの概念の説明から、実際にiOSのプロジェクトへのKMM導入し動作させるまでを、弊社での取り組みを交えて解説いたします。

採択
2022/09/11 12:00〜
Track E
スポンサーセッション(20分)
スポンサーセッション

React NativeからNativeアプリへ ~スタートアップ企業における「機能開発と保守性担保」の両立への挑戦~

GoS_67 ShogoSaito

ビットキーは「テクノロジーの力であらゆるものを安全で、便利で、気持ちよく繋げる」をミッションに掲げるスタートアップ企業です。
自社プラットフォームからハードウェア、ソフトウェアまで開発している弊社ですが、
本セッションではReact Native製iOSアプリworkhubを取り上げます。

workhubは"働く空間において人と仕事の間のあらゆるものを繋げ、新しい働き方に即した体験を提供する"アプリです。
スタートアップにおいて求められる"機能開発のスピード感"と、決して無視できない"保守性の担保"をいかに両立するか?をテーマに、
1年半の間取り組んだNative化をご紹介します。

・スタートアップにおけるソフトウェア開発に求められるもの
・なぜReact NativeアプリをNative化するに至ったか
・Native化の方法論
・Native化により得られたもの / 難しかった点

採択
2022/09/11 13:00〜
Track A
レギュラートーク(20分)

UIKit ベースの大規模なプロジェクトへの SwiftUI 導入

kuritatu18 久利龍義

タクシー配車アプリ「GO」では、UIKit ベースで実装しており、ViewController の数は300近くあります。
2019年の WWDC で発表された SwiftUI の機能を徐々に活用していき、2021年に iOS 12 のサポートを終了したタイミングでプロダクションに SwiftUI で作った画面を展開していきました。
本トークでは、大規模なプロジェクトにおいて、どのように SwiftUI を導入し活用しているかをご紹介します。

・SwiftUI の導入
・UIKit ベースのプロジェクトでの SwiftUI 利用
・Xcode Previews の活用
・SwiftUI 利用したことで得られたメリット
・ここが辛いよ SwiftUI
・SwiftUI 利用のこれから

採択
2022/09/11 13:00〜
Track B
レギュラートーク(20分)

Swift 5.7で変わる正規表現を試してみよう

ainame ainame

現在swift-evolutionでは大量のproposalと共に長年Swift上で不便だった正規表現関連の実装を刷新する流れが続いています。実際にWWDC 22でもSwift 5.7のリリースとともにRegexBuilderと正規表現リテラルが導入されることが発表されています。

このトークではNSRegularExpressionやNSStringにおける課題がどのように解決されているかをswift-evolutionの各proposalをもとに振り返り、iOSやサーバーサイドでのアプリケーションや文字列処理が生きてくる書き捨てのスクリプト(例えばログ解析など)でどれぐらい実用的に利用できるのかをベンチマーク結果を添えて検証していきます。

特に普段Rubyなどで書くことが多い書き捨てスクリプトを置き換えるポテンシャルがあるのかどうかに個人的に興味があります!!いかに!?

採択
2022/09/11 13:00〜
Track C
レギュラートーク(20分)

CoreGraphicsでドット絵を描こう

noppefoxwolf noppe

このトークを通して、ドット絵を描くアプリを作ってみましょう。
ドット絵は、イメージの最小単位であるピクセルを塗ることで描くことが出来ます。
CoreGraphicsの世界を通してピクセルを見ることで、普段意識しないイメージがどのようにしてメモリ内に格納されているかを知ることもできます。
また、CGContextを直接操作することでCGContextに存在しない描画APIの開発もしてみましょう!
このトークはドット絵エディタEditormodeの開発者がお送りします。
https://apple.co/3GJyqRF

採択
2022/09/11 13:00〜
Track D
レギュラートーク(20分)

既存サブスクリプション商品にアップグレード・ダウングレード商品を追加しよう

BOBG1018Vi ぼぶ

本トークでは、既存サブスクリプション商品にアップグレード・ダウングレードを追加する方法についてご説明します。

具体的には、

アップグレード・ダウングレード・クロスグレードについて

  • サブスクリプショングループとは
  • レベルの設定
  • レシートはどうなるのか

上記を公式ドキュメントを織り交ぜながらご説明します

運用しているサブスクリプションにアップグレード・ダウングレードを追加するには

  • 新規商品を申請するために注意すべき箇所は何か
  • SandBoxで検証する際のtips
  • SandBoxで確認できない範囲の検証結果

導入しづらい運用ケースとは

  • 複数のサブスクリプショングループを運用している場合
  • クレジットや他プラットフォームでの決済手段がある場合

を予定しております。

採択
2022/09/11 13:00〜
Track E
企画

スタートアップへの挑戦

asahilab 理工学術院 教授 朝日透

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 13:15〜
Track E
企画

空間を多様化させ多様化した社会の基盤を作る

hiroki_tanakaur Urth CEO 田中大貴

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 13:30〜
Track E
企画

ICTを用いた教育・エンタメ用途の宇宙体験サービス

katsuaki_robot amulapo CEO 田中克明

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 13:35〜
Track A
レギュラートーク(20分)

入門 SwiftUI Alignment Guide

monoqlo monoqlo

SwiftUIは細かく指定しない限り簡潔にレイアウトを記述できることも多い一方で、
Auto Layoutでは簡単にできていたことが意外と難しかったり、そもそも実現が困難なケースもあります。

このトークでは、VStackやHStackで単にleadingやtopなどを指定するだけでは
実現が難しいレイアウトを攻略するために有効なAlignment Guideについて、次のステップで学ぶことができます。

  1. Alignmentの概念および挙動についての基礎
  2. alignmentGuide(_:computeValue:)の理解と利用方法
  3. Custom Alignmentの実践的な使い方と制約

想定する対象者

  • SwiftUIをなんとなく書けるようになってきた人
  • alignmentGuideやCustom Alignmentを使ったことがないor使い方がよくわからない人
採択
2022/09/11 13:35〜
Track B
レギュラートーク(20分)

Swift Concurrency時代のリアクティブプログラミングの基礎理解

banjun ばんじゅん🍓

リアクティブプログラミングは非同期プログラミングの手段として使われることがありますが、本来は非同期データストリームをうまく扱うためのものです。Swift Concurrencyが導入された今こそ、Combineなどの具体的なライブラリから一歩距離を置いて、リアクティブプログラミングそのものを学習しておきましょう。

このトークでは、リアクティブプログラミングがデータフローの記述方式であるということを基本からおさらいします。リアクティブプログラミングを図的に理解でき、UIや通信のイベント配送設計も自在にできるようになります。

非同期はリアクティブプログラミングの外の世界と接続するときや内部実装には必要です。両者のポジションの違いを整理し、Concurrencyの機能をそのまま使うべきところと、リアクティブプログラミングでデータフローを記述すべきところが、よく分かるように説明します。

採択
2022/09/11 13:35〜
Track C
レギュラートーク(20分)

音声配信アプリにおけるiOSを使った音声配信の全てと裏側

entaku_0818 entaku

Voicyでは日々パーソナリティさんという音声投稿者による音声配信がされております。
iOSにおいて音声配信をする上で欠かせないAVFAudioを利用しております。
AVFAudioには多種多様な機能がありますが、実際サービスを扱っていく上で一体どんなことに注意し何を必要があるのか?がわからないことが多いです。
本トークでは音声配信をiOSで実装する上でどのように考え実装するべきなのかを全てと裏側という形でお伝えしたいと思います

  • AVFAudioを利用した音声の取り扱い
    • 音声収録
    • 音声配信
    • etc
  • Voicyで利用している音声配信の提供方法
    • 収録配信
    • リアルタイム配信
  • 課題や今後の展望
採択
2022/09/11 13:35〜
Track D
レギュラートーク(20分)

タクシーアプリ「GO」から学ぶ Google Maps SDK 活用術

kamekiti Yosuke Imairi

タクシーアプリ「GO」は地図をベースとしたアプリです。地図には Google Maps SDK が利用されています。

Google Maps SDK で提供される機能を駆使して、さまざまな情報を地図上で表現しています。
その実装は難しいこともあり、あらゆる工夫を凝らして実現されているものもあります。

「GO」での実例を元に、実装上のハマりポイントや苦労して実現したところ、開発時に遭遇した不思議な現象などを紹介します。

・地図上を走るタクシーの動態表示
・近くの道路に自動的に引き込ませる機能
・ルートのグラデーション表示
・タクシーを配車できないエリアを明示する
・地図の中心点を変えずに、複数の地点が収まる形にズームレベルを調整する
・地図のパフォーマンスを下げて省電力で動作させる
・カラースキームで地図の雰囲気を変える
・Google Maps における緯度経度の不思議

etc..

採択
2022/09/11 13:45〜
Track E
企画

全人類クリエイターの世界

AKRHTKYM レイワセダ CEO 畠山祥

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 14:10〜
Track B
レギュラートーク(40分)

詳解 Core NFC - NFC を用いた iOS App 開発のてびき

treastrain treastrain / Tanaka Ryoga

NFC とは駅・空港での自動改札機やお店での電子マネー決済、社員証や学生証をかざした入退出管理など、日常でよく見かけるアレを叶える技術です。

iPhone に搭載されている NFC を私たちの App で使うためには Core NFC を用います。これは iOS 11 から利用可能になり、iOS 13 のタイミングで大きくアップデートされました。昨今の情勢から非接触技術が注目されたり、eKYC に利用できたりと、現在進行形でさまざまな App で利用が広がっています。

私は iOS 13 のときから3年間、この Core NFC を使った App の個人開発を続け、関連する OSS も公開してきました。それによって得た iOS 固有の NFC 利用まわりの知見や、これから Swift Concurrency + Core NFC を活用する App を開発する際の流れ・例を紹介します。

採択
2022/09/11 14:10〜
Track C
レギュラートーク(40分)

SwiftUIとUIKitを仲良くさせる

auramagi Apurin Mikhail

SwiftUIが発表されてからすでに3年が経ちました。
しかしいまだに開発現場から採用が難しいという声が聞こえてきます。
UIKitとSwiftUIの併用も可能ですが、実際に採り入れてみるとさまざまな問題が発生しました。
このセッションではそれらの問題を解決する手法を紹介します。

  • レイアウト・プレビュー
    • UIView / UIViewControllerをSwiftUIの中で使うとき
    • RepresentableKitの紹介
    • ViewをUIKitで使うとき
  • Appライフサイクル
    • UIApplicationDelegateとUISceneDelegateを引き続き使う
    • Appでまだ取得できないイベントをSwiftUIに伝える
    • iOS 13の交互性を考慮する
  • 状態管理
    • 共通の状態をどうするか
    • 依存の受け渡し
採択
2022/09/11 14:10〜
Track D
レギュラートーク(40分)

正規表現って結局何なのさ?〜エンジニアのためのコンピューターサイエンス入門〜

ta_ka_tsu ta_ka_tsu

皆さん多かれ少なかれ正規表現を使ったことがあると思います。
コマンドラインツールで、エディタの検索で、そしてNSRegularExpressionで。
単純な文字列検索に比べ、正規表現はとても表現力豊かでパワフルな検索を可能にします。

Swift Evolutionにも正規表現に関する多くのproposalがあり、Regex型やRegexリテラルなどが正式に実装される日も近いでしょう。
しかしこの正規表現とは一体何者なのでしょうか?
どんなものが表現でき、どんなものが表現できないのでしょうか?

多くのメタ文字や演算子記号があるためとても複雑なものと思われがちですが、実際にはたった3つの文字列の演算ルールだけで構成されています。
本トークでは状態遷移図の一種であるオートマトンからスタートして正規表現の原理を紐解きその限界を探っていきます。

採択
2022/09/11 14:10〜
Track E
企画

スタートアップへの挑戦 - Ubiq

nakabayashi912 Ubiq CRO 中林辰雄

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 14:20〜
Track E
企画

スタートアップへの挑戦 - StatHack

ryoto_ma StatHack CEO 松葉亮人

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞