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

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

ushisantoasobu ushisantoasobu

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

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

詳解Fastfile

giginet ぎぎにゃん

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

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

レギュラートーク(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のやり方をご紹介します。

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

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

fumito_ito fumito-ito

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

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

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

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

takahia 日浅 貴啓

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

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

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

tarappo 平田敏之

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

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

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

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

そこらへんにいる小学2年生は Swift Playgrounds で楽しくプログラミングを学習できるのか!?

chino_tweet ちの

2017年度、千葉県にある公立小学校の放課後教室で毎週1回、プログラミング教室を実施しました。
プログラミング教育に特別敏感な家庭や才能がある子を対象にしたのではなく、放課後スクールにいるごく普通の子たちに29回実施したレッスンの中で、Swift Playgrounds にチャレンジした結果や、つまづきどころを紹介します。

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

Appleの公式学習コンテンツで学んで、iOSアプリ開発を始めよう!

Solti Hiroyuki Aoki

みなさんは、Appleが提供している公式のiOSアプリ開発トレーニングをご存知ですか?
アプリ開発を学び始めるにあたり、公式が提供しているものは比較的信頼性が高いと言えます。
「とは言え、トレーニングを受けるにはお金が…」という方のために、実は無料で利用できるAppleのトレーニングコンテンツを利用した学習のポイントをApple認定トレーナーからご紹介します。

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

レガシーなアプリケーションの60fps化を目指す為にやっていること

satoshin21 Satoshi Nagasaka

私の現在担当しているアプリケーションはファーストリリースから早5年が経過しようとしています。
しかし、ユーザの求めるサービス、そして何よりUI/UXへの期待値は5年前とは比べ物にならないくらいに上がりました。
ユーザの期待を裏切らない為に、我々iOSチームがfpsを一つの指標に置いてUI/UX改善の為に行っている事、またこれから改善していきたい事についてお話します。

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

Swiftコードから状態遷移図を自動で生成し、継続的にメンテナンスしやすくする

yaso_san 八十嶋祐樹

アプリの中の複雑な状態はステートマシンなどを導入することで管理しやすくなります。
しかし、コードだけを見ても流れが分かりにくかったり、状態遷移図を作ってもコードに合わせて更新していくのが面倒だったり、継続したメンテナンスは大変です。
このトークでは、シンプルなステートマシンとSourceKit・Graphvizなどのツールを使ってコードから状態遷移図を自動で生成する仕組みを作り、継続的にメンテナンスしやすくする方法をお話しします。

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

いまさら聞けないWebAPI設計

shimataro999 小田島

今やウェブサービスは、ブラウザからだけでなくスマホアプリにも対応して当たり前の時代。
一昔前のようにサーバサイドで全て処理することはあまりなくなりました。

そこで必要になるのがAPIですが、ウェブサービス向けのAPIとアプリ向けのAPIは似ているようでところどころ違います。
API設計の基本から認証・セキュリティまで、ウェブサービスでもアプリでも使えるいまさら聞けないAPIの作り方を解説します!

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

Codableでなりすましたラッパー型で意味を具体化する。RawRepresentableとともに。

_ha1f はるふ

例えば「ファイルサイズ」はInt型に見えますが、
メガバイト表記とキロバイト表記は同じものでも、数字としては違うので、
Int, Double自体とは少し異なった性質があります。

そういった状況でも、
Codableを活用することでユーザビリティを損なうことなく、
より具体的に、より安全に情報を表現することができました。
他の活用例も交えながら、そのテクニックをご紹介します。

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

Manual DI with ReactorKit

kz56cd Masakazu Sano

昨今のiOS界隈でも、関連する発表・トークが多い印象のDIについて。

ReactorKitは、RxSwiftをベースにFlux Architectureを実現するためのフレームワークですが、
RxSwiftの恩恵により、イメージよりも手軽に、小回りの効いたDIを組み込むことができます。

今回は、そんなReactorKitにフィットするDIを自作してみましょう。

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

苦しんで動かすGraphQLベタープラクティス

kz56cd Masakazu Sano

2015年にFacebookが発表し、じわじわと存在感を増しているGraphQL。
しかしその実績や運用方法などの情報は、未だに充分には浸透していないように思えます。

このトークでは、初めて実案件でGraphQLに触れた経験から、
GraphQLの基本概念、Apollo-iOSとの付き合い方、またサーバーサイドエンジニアとの連携方法など、
(ベストとはいえないまでも)ベターなプラクティスとしてお話しします。

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

Reduxで10本弱のアプリを作った弊社のナレッジ、時間の許す限り話すよ

kuroruri くろるり

昨年4月頃、それまで社内で抱えてたいくつかの問題を解決するために全アプリ開発チームでReduxの導入を決定しました。その後会員系アプリから銀行系アプリまで10個弱のアプリ開発が行われてきました。今回はそれらを通して得られたナレッジを話せる限り話そうと思います。
現在予定している内容
-Storeはアプリ全体で1つでなくてはならないのか
-ビジネスロジックをSwaggerみたいに定義、自動生成できないか

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

アーキテクチャ初心者に贈る!私はこうやってアーキテクチャを勉強した

takehilo_kaneko Kaneko Takehiro

初めてのiOSアプリ開発プロジェクトにアサインされた半年前、それまでなんとなくでコードを書いていた自分を改めるべく、アーキテクチャの勉強を始めました。ググれば多くのアーキテクチャパターンの解説やサンプルを見つけることができますが、実際の開発ではそれらの情報だけでは足りず、自分なりの解釈が必要になってきます。
このトークでは、アーキテクチャ初心者だった自分がどのようにアーキテクチャを勉強し、実際にMVVMを使って開発したかをお話します。

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

Androidを考えたiOSアンチパターン

yutaabe200 yutaabe200

アプリ開発と言うとほとんどがAndroid・iOS両OS開発するシーンがほとんどかと思われます。
その中でiOSでは容易に実装できるけどAndroidではキツイ!と言う実装やその逆のパターンも数多くあります。
本セッションではAndroid実装を考慮するとiOSでやってはいけないアンチパターンを両0S開発の経験を基にお話しします。

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

Let's try ARKit!

mcz9mm Kaoru Matarai

ARKit2.0では3Dの物体認識や空間の共有など、従来のARKitでは実現できなかった機能が追加されました。
「ARって何?」とか「面白そうだからやってみようかな?」とか思っている方向けに、ARKitの各機能の紹介と
簡単な実装方法について話せればと思います。

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

Developing .framework 101

jarinosuke Naoki Ishikawa

iOS の dynamic framework 開発のイントロダクションになります。
framework 開発で得た以下の地検などを説明さ背てもらおうと思っています。

  • static library/dynamic framework
  • sub framework への切り出し
  • framework の I/F を考える
  • open アクセス修飾子
  • Bundle 問題
  • Swift ABI