iOSエンジニアに聞いて欲しいトーク(30分)

モバイルアプリの開発環境を整えるおしごと

slightair slightair

クックパッドには「技術部モバイル基盤グループ」というモバイルアプリの開発環境を整えることを専門に行う部署があります。ここでは開発効率向上のためのライブラリやツール、仕組みを作ったり、開発環境の整備といった様々な業務を行っています。直接アプリを作るわけではない珍しいチームだと思いますが普段どんな事を考えて仕事をしているのか、こういうアプリ開発への関わり方もあるんだよ、という話をしたいと思います。

iOSDCルーキーズ LT(5分)

App Storeで成功するためにiOSエンジニアに必要なものとは

zakiyamaaaaa zakiyamaaaaa

毎日のように新たなアプリが生み出されている昨今。その中からユーザーに選んでもらい、喜んでもらえるのは至難の技です。
そこで、どのようにしたらAppStoreを上手に活用できるのかについて、Appleの開発者の知見をもとに紐解いていきます。

iOSDCルーキーズ LT(5分)

Create MLとFirebase ML Kit の比較を5分でやってみる

zakiyamaaaaa zakiyamaaaaa

ここ最近の機械学習の波にのってiOS12にもCreate MLというMachine Learning(ML)のフレームワークが使えるようになりました。
また、みなさんおなじみのFirebaseでもML kitというモバイル向けのML サービスがβ版として提供されています。
本トークでは機械学習に興味があるエンジニアを対象に、この2つの機能の特徴を比較していきます

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

時は満ちた...今こそAVSpeechSynthesizerに日の目を!

ushisantoasobu ushisantoasobu

iOS7より登場した、テキストの音声読み上げAPIであるAVSpeechSynthesizer。スマートスピーカの登場をはじめとして「耳で情報を得る」機会は今後も増えていくのではないでしょうか。
iOS7登場時にリリース・運用してきたTwitter読み上げアプリの経験を通して、AVSpeechSynthesizerを用いたアプリの開発のポイントを発表できればと思います。

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

退屈なことはApp Store Connect APIにやらせよう

giginet ぎぎにゃん

ついに発表されたApp Store Connect API。これを使えば何ができるのでしょうか?
公開されている情報からいくつかの業務改善のアイディアをお話しします。
また、実際にApp Store Connect APIクライアントを実装してみて、Swiftで簡単なタスクを記述する方法をお伝えします。

このトークの内容はトーク時にApp Store Connect APIが公開されているかによって変わります。

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

「絶望から出発しよう」とはならないために

ushisantoasobu ushisantoasobu

アプリを本格的にグロースしていこうとしたときに「最初に仕込んでおくべきだった...!!」みたいなものが結構あったりすると思います。わかりやすい例をあげると「強制アップデート」なんかがそれに当たると思います。こういった「最初から仕込んでおくべきだった」ものを、自身のこれまでの開発経験からピックアップして整理して発表できればと思います。

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

詳解Fastfile

giginet ぎぎにゃん

プロジェクトが大規模化していくと、さまざまな業務を自動化したくなってきます。同時にロジックが増え、特定の人しかメンテできなくなったFastfileにお悩みの方も多いでしょう。

このトークでは、実際の活用事例を交えながら、大規模プロジェクトにおける効果的なFastfileの書き方、プロジェクトの雑務自動化についてをお話しします。
そのほか、fastlaneコミッターによる明日から使える実践的なtipsも数多くお伝えします。

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

SwiftからReact Nativeに移り、状態管理に対する僕のマインドセットはどう変わったか

__timakin__ timakin

Swift、特にRxSwiftでの状態管理、コンポーネントへの情報の伝播に徐々に慣れた頃、React Nativeでアプリを作った僕は、宣言的に状態管理を行わず、コンポーネントが更新される様子を見て、状態管理への捉え方を変えざるを得ませんでした。
クロスプラットフォームの特性ではなく、あくまでiOS開発の側面で、React Nativeはマインドセットをどう変えていくのかというテーマで発表したいと思います。

iOSDCルーキーズ LT(5分)

内製アプリチームを立ち上げて、10ヶ月でリリースするまでのお話

moritaro12 moritaro

2017年9月、PM1人とiOS/Android Engineer 2人の、計3人の小さな内製アプリチームが社内で立ち上がりました。
アプリ開発に関するノウハウがまったく無い中、日々試行錯誤し、時には社内からの圧力や厳しい意見に揉まれながら、2018年6月にリリースまでたどり着くことができました!
LTではその軌跡と我々のPassionをお伝えできればと思います。

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

プロトコルを使って複数サービスを跨いだmusic playerを実装する

kumabook kumabook

iOSでは曲を再生する方法としてAVAudioPlayerやMediaPlayerなどがあります。しかし、それぞれのplayerごとに再生キューやライフサイクルを持っており、player間を跨いで連続再生をするのは直感的には実装できません。今回は上記2つ加えてyoutube iframe player・SpotifyPlayerのplayer間を跨いで連続再生できるmusic playerをprotocolを利用して実装した話をします。

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

Swinjectによるいい感じなDIのやり方

_rockname rockname

DI機運が高まる昨今、AndroidではDagger2を採用する企業は多いかと思いますが、iOS開発においてみなさんはどのように依存性を注入していますか?
StoryBoardを採用するチームでは、VC初期化時に変数を渡せずに苦労して妥協することも多いと思います。
そこで今回のトークでは、DIライブラリ「Swinject」によるいい感じなDIのやり方をご紹介します。

LT(5分)

UIWindowが複数存在するとき、ステータスバーのスタイル設定が難しい件

malt03 malt03

UIWindowが複数存在する場合、preferredStatusBarStyleやprefersStatusBarHiddenが呼ばれるViewControllerはどのWindowから選ばれるかを、調べた限りの情報で説明します。
かなり独特のロジックになっており、コントロールするのもかなり難しいです。

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

今そこに迫るPWA!〜AWS Amplifyを使って、お手軽にPWA開発をやってみよう〜

afukui 福井 厚

ネイティブアプリとWebアプリの両方の利点を持ち、お互いのギャップを埋めることができる技術として WPA (Progressive Web Apps) が注目されています。AWS Amplifyを利用するとPWAのService Workersを簡単に登録し、利用することができます。このセッションでは、AWS Amplifyを利用してPWAを実装する手順を分かりやすくデモを交えながら解説します。

LT(5分)

その dispose 本当に安全ですか?

fumito_ito fumito-ito

RxSwiftを利用していると必ず使うことになる dipose メソッド。dispose が実際にどのスレッドで実行されるか意識していますか?

本セッションではdisposeが実行されるスレッドによってクラッシュが発生する可能性を提示し、より安全にdisposeするために取りうる方法を説明します。

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

非同期UI描画による高速なアプリケーションの実装

fumito_ito fumito-ito

iOSアプリケーションの高速化においてメインスレッドをブロックするUIの描画コストは無視できない問題です。

日経電子版アプリでは非同期なUI描画を実現するTexture(AsyncDisplayKit)を導入し、大量のテーブルをスムーズに描画しています。
本セッションではTextureの検討から具体的な導入ステップ、導入にあたって遭遇したトラブルと対応方法について紹介します。

iOSDCルーキーズ LT(5分)

GenericsでVIPERのテンプレートを減らす

stzn3 shiz

VIPERはiOSアプリ開発において共通の設計パターンの一つになっています。アプリ全体として構造をしっかりと作れる反面、同じような記述を繰り返さなければならないというマイナスの面も持ち合わせています。Genericsを用いることで繰り返しの記述を減らし、よりスッキリとVIPERを使用するための方法をご紹介したいと思います。

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

クロスプラットフォームアプリ開発ノススメ

takahia 日浅 貴啓

昨年Google iOでFlutterが発表され、KotlinConfではKotlin NativeでのiOS開発が発表されたりと、再びクロスプラットフォームアプリ開発が脚光を浴びようとしています。本セッションは、Fultter、Kotlin Nativeの他、従来のReactNativeやXamarinでの開発も踏まえて、今後私たちがどのような方向性で進むべきか考察していきます。

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

iOSのUIテストの難しさについて考える

tarappo 平田敏之

iOSのプロジェクトで、UIテストを利用しようとしてうまくいかなかったケースはあると思います。
また、そもそも手を出すことすらためらっていることもあるかと思います。

本トークでは、世に公開されているような成功事例の話はしません。
なぜ、難しいのかを「導入時」「実装時」「運用時」とそれぞれのフェーズについて話します。

本トークにより、実際にUIテストを利用するきっかけになればと思います。

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

Swift for TensorFlow - 機械学習への言語からのアプローチ -

K_Ryuichirou 龍一郎

Swift for TensorFlowはTensorFlowに関連したプロジェクトの中でも異彩を放つものです。そこではTensorFlowではなく、Swiftの開発が行われていました。このトークではそうなった経緯について、「機械学習に必要なものはなにか」という問への真正面からの取り組みと、Graph Program Extractionを含むその問への解答を中心に扱います。

iOSDCルーキーズ LT(5分)

え!それが読めるの!?それをそう読むの!? AVSpeechSynthesizerにあれこれ読ませる

ta_ka_tsu Takatsu Youichi

AVSpeechSynthesizerは文字列を読み上げてくれる便利なAPIです。
しかし読み方というものは一意に決まりません。
例えば"上手"という文字列をこのAPIは何と読むでしょう?「じょうず」?それとも「うわて」?答えは「かみて」です。
"1kg"は「いちきろぐらむ」ですが"1g"は「いちじー」です。では絵文字を読ませると…?
本LTでは、読ませてみて驚いたものや意図しない読み方をしたものなどを紹介します。