iOSDC Japan 2020 プロポーザル一覧

他イベントOK レギュラートーク(20分)

Firebase & BigQuery で iOS アプリの成長を支える

辰濱健一 tatsuhama50
みなさんのアプリでは Firebase を使っていますか?
Firebase の機能のうち、アプリケーション開発に関わる Cloud Firestore、Cloud Messaging、Crashlytics はよく使っているかも知れません。
Firebase にはユーザ分析機能も備わっており、アプリケーションから送った Event や User Properties を使って、ユーザ行動を分析することも可能です。
しかしながら、Firebase コンソール上ではある程度の分析しか行うことができません。

本セッションでは、
・Firebase 上に蓄積されているデータを BigQuery に出力する方法
・BigQuery と Data Portal を使って、Firebase コンソール上ではできない詳細な分析を行う方法
・Firebase の機能を使って、特定のユーザ群にアプローチし、ユーザの定着やアプリを成功へ導く方法
を紹介します。
2
他イベントOK レギュラートーク(20分)

今こそ始めるキーボードショートカットに対応したアプリケーション開発

funzin _funzin
2020年4月にトラックパッドがついたMagic Keyboardが発売されるなど、ここ最近iPadのキーボードがあつくなってきてますね。
キーボードで操作するとなるとPC同様にショートカットを使いたくなります。
しかしiPad対応しているアプリにおいても、キーボードショートカットに対応しているアプリはそう多くありません。
この発表ではUIKeyCommandを利用して、どのようにキーボードショートカットを用いたアプリケーションの実装をするか、またどのような操作をショートカットキーに割り当てるべきかなどをお話しできればと思います。
7
他イベントOK レギュラートーク(20分)

さようならOpenGL、ようこそMetal

meteor s_urabe
OpenGLはiOS 12から非推奨になり、その代わりにAppleが開発したグラフィックスAPIであるMetalを推奨されるようになりました。
2020年6月現在ではまだOpenGLを使ってもストアの申請は通りますが、今後ストアの申請が通らなくなる可能性は非常に大きいです。
しかし、現実的にはまだまだ世の中のプロダクトでOpenGLを使っているものは多く、Metal移行はあまり進んでいません。
今回はOpenGLからMetal移行をプロジェクトとして行った際のハマりどころや、MoltenVKを使って、VulkanからMetalに移植した話などを解説していきます。
グラフィックスAPIにご興味がある人は是非お聞きください。
5
他イベントOK LT(5分)

Apple Low-Latency HLSを使った超低遅延配信について

meteor s_urabe
AppleがWWDC 2019で発表したLow-Latency HLSは、2秒未満の遅延を実現することができます。
しかし、Apple Low-Lantecy HLSはとても複雑で、現時点で採用している製品はあまり多くありません。
今回はApple Low-Latency HLSが既存のLow-Latency HLSとの違いや内部の仕組みや、AVPlayerで再生する場合にどうすればいいのか、既存の製品や新しく配信サーバを構築するときにどういったことに気をつけていけばよいのかについて解説していきます。
5
他イベントOK レギュラートーク(40分)

今日から分かるAVAudioEngineの全て

meteor s_urabe
AVAudioEngineでは様々なエフェクトを簡単に入れることができます。しかし、中には自分で独自のエフェクトを作りたいという場合もあるでしょう。今回はAVAudioEngineを使って、AVAudioPCMBufferを加工する例を説明しながら、カスタムエフェクトの作り方について解説していきます。
また、後半はAVAudioEngineでManualRenderingModeを使って、AudioUnitからマイクの音声を取る方法や、AVAudioRecorderのようにAVAudioEngineから音声ファイルを保存する方法についても解説していきます。
iOSのメディア周りにご興味がある人は楽しめるトークです。ご期待ください。
8
レギュラートーク(20分)

テストコードも書いたことがない新卒がヤフーに入社してペアプロ&TDDを経験して1年経った件について

續橋 涼 tsuzuki817
自分は1年前までテストコードも書いたことがない、ましてはペアプログラミングなど聞いたこともない超絶初心者プログラマでした。

そんな自分がヤフーに入社しPayPayフリマiOS開発チームに加わって、Lean XPでペアプログラミングでテスト駆動開発を続けて1年が経過しました。

ペアプログラミングをご存知の方も多いかと思いますが、実際にペアプロを業務で継続的に行っているという方は、比較的少ないように感じています。

新卒であり初心者である自分ならではの視点から見た、ペアプロやTDDについて話をしたいと思います!
4
他イベントOK LT(5分)

SwiftUIで個人アプリを4本リリースして得たtips集

續橋 涼 tsuzuki817
みなさんSwiftUIで開発してますでしょうか?

まだまだ業務でSwiftUIを使うことは少ないと思いますが、個人アプリなら使いたい放題です!

自分がSwiftUI製のアプリを4本リリース(5つ目開発中)したり、SwiftUIのライブラリなどを作っています!

そんな中で得たSwiftUIのtips集をお話ししたいと思います!
5
他イベントOK レギュラートーク(20分)

BuildConfigurationによる機能出し分けを、型定義の力を借りて実現していく

小林南実 minami1389
共通したコードベースを基に、複数アプリをビルドしたいことがあります。
例えばCtoCのECサービスにおいて、同プロダクトの販売者向けアプリと購入者向けアプリを実現したいときなど。
このように、機能の出し分けはあるけれど、共通部分が多いのでソースコードを分けるほどではない、といった場面が起こり得ます。

こんな時に用いる手法として、Configurationを複数作成しそれぞれにおいてマクロを定義し、
機能出し分けを行いたい箇所で「#if」という記法を使って実装コードを出し分けていく、といったものがあります。
こういった開発においてよく発生してしまうのが、コードの至るところに「#if」が発生してしまい、可読性が落ちてしまうということです。
また本来であれば購入者のみが使用できる機能であっても、誤って販売者向けアプリにおいて表示してしまう、という不具合が起こる可能性も十分あります。

そういった課題を「型定義」の力を借りることで解決することができます。
本トークではこちらについてご紹介したいと思います。
3
他イベントOK LT(5分)

動画合成ができるWebアプリケーションを実現したい!!お願いFirebase!!

小林南実 minami1389
よく動画サイト等で「1画面が複数分割されていてそれぞれで楽器を演奏している」みたいな動画を見かけませんか?
「複数動画をアップロードしたら、自動で分割動画作ってくれるWebアプリがあったら便利!」とふと思い、
さくっとプロトタイプとしてアプリを開発してみることにしました。

「さくっと作るにはやっぱりFirebase使うと良さそうかな!やってみるぞ!」と思い立ち、
「とはいえ、Firebaseって動画合成とかそんなリッチなことまで出来るのだろうか・・・」と半信半疑ながらも開発を始めてみました。

結論としては、Firebaseを用いて動画合成を伴うWebアプリを実現できました!!
どんな風に実装したのか、また実装していく上でぶつかった課題、等々をご紹介していきます。
他イベントOK レギュラートーク(20分)

protocol, extension, generics を活用してFirestoreとの通信処理を共通化した話

小林南実 minami1389
私は現在、Firebaseのデータベース機能の一つである Cloud Firestore を活用したアプリ開発を行なっています。
Firestoreに限らずアプリ開発においてサーバーとの通信を行う実装は、取得したい各データ毎に似たような処理を書いていくことになるので、なるべく共通化したいという思いがあります。

今回 Firestore との通信において、Swiftの言語機能である protocol, extension, generics を活用して共通化を実現しました。
本トークではこちらについてご紹介したいと思います。
1
他イベントOK レギュラートーク(40分)

VIPER×FeatureComponents×CodeTemplateで爆速新規開発

小林南実 minami1389
新規にアプリを開発する際、スピード重視でシンプルなアーキテクチャを採用するべきか、
はたまた将来の拡張性を考えて最初から重厚なアーキテクチャを採用するべきか、といったようなことを悩む人も少なくないと思います。
でもやっぱり、開発スピードも、拡張性も、コードの可読性も、どれも諦めたくない!!!

それらを達成するために試行錯誤し、私が辿り着いた一つの開発手法をご紹介します。
ポイントは以下の3つです。
—————
・VIPERアーキテクチャを用いて各レイヤーを疎結合に!
・機能毎にComponentViewとして分割してViewContollerではそれらを組み合わせるだけに!
・ソースコードを積極的にテンプレート化してコード自動生成をフル活用!
—————
3
LT(5分)

iOSアプリを譲渡!?失敗は許されない一発勝負!予想外に立ち塞がる様々な罠に挑んだストーリー🙌

じんむ koooootake
iOSアプリを譲渡した経験ありますか?

この物語は、ひとりのiOSエンジニアが絶対に失敗が許されない状況下で、
アプリの開発アカウントを切り替えるアプリの譲渡に挑んだ経験を語ったものです。

いつかはあなたも取り組む時が来るかもしれないアプリの譲渡、
その予想外な罠と解決方法、リアルタイムに起きたAppleからの譲渡条件変更の通知、
譲渡先の法人アカウント設立の小話など、楽しく語りたいと思います🤤
10
他イベントOK LT(5分)

Swiftでナップサック問題を解いたらTLEになっちゃった!なんで?どうして!?

しもとり S_Shimotori_pub
皆さん、競技プログラミングに挑戦したことはありますか?
競技プログラミングでは様々な問題が出題され、正しく **高速に** 解くプログラムを作成してそれを解答とします。
実行時間が制限を超えれば容赦無くTime Limit Exceeded。時間切れで得点ゼロです。

ナップサック問題のような難しい問題であっても、与えられた実行時間はたったの2秒。2秒以内に答えを出すプログラムでなければいけません。

まあ、難しいっていったって、配列作ってfor文をくるくるっと回すだけで答えがすぐに出るんですけどね。楽勝楽しょ……

_人人人人人_
> TLE <
 ̄Y^Y^Y^Y ̄

なんで?どうして!?実行時間が4秒超えてるってどういうこと!?
標準入力受け取って配列宣言してfor文回して配列更新するだけたったのO(NW)なのに!
C++で解いたら15ミリ秒なのに!

本LTでは、日頃愛用のSwiftで挑戦したい皆さんに向けて、おなじみの "あれ" が意外と遅いことを紹介します。競プロでは便利な "これ" を代わりに使うといいらしいですよ。
3
他イベントOK LT(5分)

「Swift」で始める競技プログラミングのススメ

HiromuTsuruta hcrane14
みんなー!競プロやってるかーー?
え?やってるけどSwiftじゃないって?

わかるよ。。。だって遅いもんね。。。
それでも僕は「Swift」が使いたいんだ!!!

セッション内容は以下のような内容を考えています
- Swiftで競技プログラミングができるメリット・デメリット
- Swiftでポインタを使ってみよう!
- Swiftで速度を出すためのテクニック

..etc

日本で競技プログラミングをするならAtCoderが有名ですが、
そんなAtCoderでも今年ついにSwift2.2からSwift5.2.1が対応となりました。

今年は「Swift」競技プログラミング元年として盛り上げていきましょう!
11
2019 スポンサー 2019〆切後 資料請求
オンライン対応未決定 削除予定 オンライン対応検討中 要ロゴ 要PR 要支払
仮採択 採択しない スピーカー採択
仮採択(原稿) 採択済 採択しない 仮採択 要審議 ニッチ企画? LT向き加点