長く続くアプリ開発において、複数のアーキテクチャが積層のように負債となってしまうことは、割と多くの現場で起きているのではないでしょうか。
より良い開発をしていくためには負債の返済という、痛みを伴う対応を迫られるときがいつかきます。
このトークでは自分が直近で直面した負債の返済について話をします。
どう返済していったのか、チームとどうやって足並みをそろえたのか、様々な反省をお伝えします。
UIViewControllerから画面遷移処理を切り離すための設計パターンに、AppCoordinatorとRouterというものがあります。
この二つは名前の違いこそあれど意味するところは同じで、「方言」だと考えています。
このトークではUIViewControllerから画面遷移処理を切り出す理由と方法、名前と役割の対応にまどわされない開発チームになるための、設計に対する姿勢について話します。
Quipperが開発する学習サービス「スタディサプリ」ではIAP(アプリ内課金)による支払いが可能です。IAPは同サービスで高いシェアを持つ人気決済手段ですが、運用者の立場では他の決済手段と比べて不満がないわけではありません。このトークでは以下のトピックを通じてiOSアプリでの課金手段について再考します。
XcodeはIDEと呼べない---悲しいかなそんな声も囁かれる我らがXcodeですが、本当にXcodeは「できない子」なのでしょうか?
できないことではなくできることに目を向けるべく、このトークでは以下のことを話します。
・意外と知られてなさそうな便利な機能、設定
・Xcode 10では新しく何ができるようになるのか
Storyboardの扱いでしばしば挙げられる問題点の1つとして、文字列を扱う事によるtypoや変更への弱さが挙げられます。
ここではProtocol Oriented Programmingを用いて、そのデメリットをできる限り解消していきます。
Metalに限らず、昨今の3D描画APIは「フラグメントシェーダー」と呼ばれるプログラム可能な陰影処理の仕組みを備えています。
本来はポリゴンで作った形状に対して、その表面の陰影や質感を表現するために各ピクセルの色を決定する機能です。
しかし本来とは全く違う使い方をすることで実に驚くべき描画が可能となります。
フラグメントシェーダーの仕組みとテクニックを交えつつ、フラグメントシェーダーによる様々な表現を紹介します。
マイクロインタラクションとは、ユーザーが操作した際に表示される、ちょっとしたアニメーションやフィードバックなどのアクションのことです。
Facebookなどのアプリで積極的に採用されており、自分のアプリにも入れてみたい、という方に向けて、マイクロインタラクションの使いどころや実装例を紹介します。
スマホは多くの人にとって生活に欠かせないものとなってきており、様々な環境、境遇の方がアプリに触れる機会も増えています。
そんな時、アクセシビリティは一つの大きなテーマになってくると思います。
iOSアプリ開発とUIは切っても切り離せない関係ですが、UIの実装には時間がかかります。ですが、Atomic Designの考え方を取り入れ、デザイナーと認識合わせをすれば再利用可能な UI Components を定義することができ、開発速度を上げることができます。
このトークでは、UI Componentsを定義する上でデザイナーと認識合わせしたこと、実装する上で工夫したことを紹介します。
大人数による大規模アプリで、コンパイラの出す警告を放置したら——
日々増加する警告数に危機感を抱いたエンジニア達が、チーム開発において警告と戦うために行っていたこととは?
警告を消し去る意味に立ち返り、目の前の警告に様々な手段で挑んでいたさなか、あることをきっかけに警告数はついに4000を超える!追い詰められた彼らは“秘策”を練るが……。
これは人類と警告の終わりなき戦いを描いた物語である。
C++はSwiftの実装に使われていたり、Objective-C++でiOSアプリ開発にも使える言語で、iOSアプリ開発と無関係ではありません。
しかし、C++を使ったことのない方も多いのではないでしょうか。
本トークでは、iOSアプリ開発になじみの言語であるSwiftに例えてiOSアプリエンジニア向けにC++の書き方や読み方を紹介します。
C++でのオブジェクト所有権などSwiftと違うところにも着目します。
通常起動にプッシュ通知、Universal Linksはもちろんのこと、Core SpotlightやWidget、Home Screen Quick Actionには対応してますか?
今年はiOS12でSiri Shortcutが登場。またAppDelegateが肥大化します。
…なんてことがないようにきれいに整理しませんか?
確認に手間がかかる起動経路まわりを効率よく実装するための設計やテストについて具体例を用いて紹介します。
「家族アルバム みてね」は、徐々に国外にユーザーを拡大しています。常に海外での快適な利用が実現されることを意識して開発していますが、その中でもメディアを高速に配信し・閲覧できることは、最重要課題でした。どのように課題を認識・改善したかの知見をお話ししたいと思います。
アジェンダ
Content(仮):
2017年8月にSwiftの生みの親、クリス・ラトナー氏によってプロポーザルasync/await for Swiftの下書きが公開され、その内容は、コルーチンのサポートによって我々は非同期処理をより読み書きしやすいコードを書けることを意味しています。このトークは、Swift 3から使えるasync/awaitライブラリHydraの利用例とその内部実装を解説し、きたるべきSwift 5時代の非同期処理を先取りするトークとなります。
GraffityというARKitを使ったアプリを作っています。
ARKitやSceneKitは用意されたAPIを使えば色々なことが簡単にできてしまいますが、
高度なことをしようとすると、空間ベクトル、座標変換などの算数(数学)の知識が必要になることに気づくでしょう。
本トークでは、ARKitを使いこなすために自分が勉強した3Dプログラミングと基本的な算数(数学)について分かりやすく説明します。
GraphQLを採用したAPIサーバー(Ruby on Rails)、APIサーバー・クライアント間を橋渡しするBFF(Expressサーバー)、クライアントのiOSアプリを開発する中で、見えてきた嬉しみとつらみの話をします。
・GraphQLについてとその魅力
・なぜBFFを挟むのか
・クライアントiOSアプリとBFFのやりとり
この3つの観点で、業務を通じて得た嬉しみとつらみを語ります。インフラ面の話はしません。
皆さんは、どのようにして iOS アプリのアーキテクチャを決めていますか?過去の体験や世間の評判から決めているのではないでしょうか。
しかし、実はその選び方には落とし穴があるのです。この落とし穴を回避するために、何を重視し、そしてどこまでアーキテクチャに従うべきなのかについてお話しします。これを選ぶ指針について、ある実在のプロジェクトを例にお話しします。
2017年12月1日朝起きたら,Zaim のせいでiPhoneがクラッシュすると Twitter 上で騒がれていました.
前回のリリースから多少は時間がたっていたし,そもそもアプリが iPhone をクラッシュさせるなんてできるの?
本当にZaimのせいだったのか,そもそも何が起こっていたのか.何が原因だったのか.
わかったこと,推測できたこと,喋っても問題なさそうなこと喋ります.
企業におけるデバイス管理手法の一つに、MDMを用いる方法があります。
しかし、有料のMDMソリューションサービスを個人で触るハードルは高く、MDMを試すことができてない人も多いのではないでしょうか。
このトークでは、オープンソースMDMのmicromdmを用いたMDMサービスの立ち上げ方やMDMCertを用いたMDM Push証明書の取得法、API経由でのMDMコマンドの発布について紹介していきます。