東急ハンズのレジは内製開発のiPadアプリで動いています。
そんなレジ用アプリはアプリ間で様々な情報を交換しています。
レジ間を飛び交う通信内容や通信方式の現在に至るまでの変遷を紹介します。
アプリ運営者はユーザに役立つ情報を届けるためにプッシュ通知を使っています。
しかし、一介のアプリユーザとして考えたとき、プッシュ通知はあまりいい印象がありません。届きすぎてうるさかったり、とどいた情報があまり役立たなかったりするからです。
このトークではどういう風にすれば、通知を許可してもらえて、長く使ってもらえるのかをiOS12で追加された機能も盛り込みつつサンプルコードを紹介しながら考えていきます。
チームメンバーは自分1人!
この状況でiOS/Android向けにアプリを開発するためReact Nativeを選択し、その最初のリリースから2年が経ちました。
その間も、様々な新機能の開発やまずかった設計の見直しなどを続けてきました。
React Native導入の経緯から開発中に立ちはだかった課題、マルチプラットフォーム対応で得られた知見を紹介します。
iOS 12の発表を機に、iOS 9やiOS 10などの古いiOSのサポート終了を考えている方も多いと思います。
サポートバージョンはできるだけ少なくして開発コストを減らし、iOS 12対応に集中したいですよね。
このトークでは、古いiOSのサポート終了を考える際の、
新規アプリの立ち上げの際、憤って流行のアーキテクチャを取り入れたものの汎用性に欠け、結局使い慣れた過去のアーキテクチャを混在させるなんてことが往々にしてあります。
FRESHでは1年ほど前に新たに動画配信用アプリの開発を始めました。
その際新たに考案し、ライブラリ化したVueFluxがいかに私達を楽にしてくれたのかを、動画視聴用アプリで採用していたMVVM+ReactiveSwiftと比較しながら、お話しします。
色んなアプリを使っていて「メニューがなぜモーダル表示?ドロワー表示の方が良いのでは?」など、UIに疑問を覚えたことありませんか?
しかしUIを考える側になってみると、ユーザからUIの指摘を受けるなんてこと、よくあるのではないでしょうか。
私はWWDC18に参加してAppleのデザイナーに直接質問してきました。そこで得た知見をもとに「〇〇の場合に理想的なUIは△△ではないか」という話をしたいと思います。
RxSwiftを採用したプロジェクトでは、多くの関数をObservableを返す関数として実装します。Observableを返す関数は通常の関数と違い、ユニットテストに少し工夫が必要になります。
このトークでは、日々Observableな関数に対してユニットテストを書いている中で見えてきたテストのパターンについてご紹介します。
※関連ライブラリ
Quick、Nimble、RxTest、RxBlocking、Mockingjay
WWDC2018にて「Automatic Strong Passwords and Security Code AutoFill」というセッションが行われました。
かゆいところに手が届くその内容に喜んでいる方も多いのではないでしょうか。
このトークでは、UITextContentTypeによってどのような入力補完が出来るのかについての見直しと、
新たにiOS12から可能になる2つの種別に関して可能な限り紹介をします。
アプリ内のコードにおいて、サーバー連携とUIレイヤーを支えるModelレイヤーについて話します。安定したUIを実現するためにMVVMやFluxなどが存在していますが、それらはバックエンドとなるModelレイヤーについては詳しくは言及していません。ですが、大きなアプリケーションではModelレイヤーの設計と管理が要になります。今回はPairs 海外版iOSアプリで実際に使用している設計をアイデアのひとつとして皆さんに共有します。
普段の業務の中ではどうしてもリリース優先になってしまい、
リファクタリング等の改善活動になかなか時間を割けていない方も多いのではないでしょうか?
弊社では毎月2日間、継続的に開発できるよう開発環境の改善を行っています。
おかげで今ではテストコードを用いたテストができるようになりました。
今回はその中で効果のあった改善施策と、その改善活動をチーム全体で推進するためのポイントについてご紹介します。
セッション数は少なかったですが、今年のWWDCではWeb関係の大きなアップデートがいくつかありました。
その中からJS関係のアップデート、ITPの検証結果、実際現場で使っているデバッグ方法などをご紹介します。
PWAに代表されるように、昨今のWeb技術もネイティブに迎合するように着実に進化しています。Appleもその流れに沿ってSafariにServiceWorkerやWebRTCを実装しています。しかし、iOSアプリエンジニアにとってブラウザはSafariだけではありません。本トークではWeb最新技術が三種類あるiOSブラウザへの対応状況と、ブラウジングとは違ったWebViewの使用例を紹介します。
昔々、勉強がてら作っていた個人アプリを最近リニューアルしました。データは元々アプリ内のSQLiteに保存しており、それらを全てFirebaseに移して、コードは全てSwiftで書き直し、勉強の為にRxSwiftを導入しました。いざリリースしたら「元に戻して」とレビューや問い合わせを頂いてしまい今後どの様に対応していくのか。
macOS MojaveとXcode 10の組み合わせからPlaygroundで簡単にCoreMLのモデルが作成出来るようになりました。ただ、現在のところ画像分類、文章の分類、表形式データの推定のみです。特に機械学習で画像を取り扱う場合、物体認識機能や画像変換機能は魅力的な機能かと思います。機械学習の知識が全く無い人が、TuriCreateを試してみてこれらの機能が如何に簡単に実装出来るか紹介したいと思います。
長い間プロダクトを運用するとコードには旧時代のプラクティス、意図のわからない仕様、統一されていないアーキテクチャなどの様々な課題が積み上がっていきます。
リリースしてから8年が経過し巨大になったじゃらんアプリも例外ではなく、生産性をあげるべく様々な取り組みを行ってきました。
このセッションでは事業の制約と技術的な課題のなかでどのようなことを行ってきた(もしくは行っている)かをお話したいと思います。
ユーザ体験向上のためにトランジションやアニメーションが果たす役割は大きい.
Human Interface Guidelinesでは,これらの項目は大幅な更新もなく抽象的な記述に留まっている.そのため,デベロッパの裁量に委ねられているのが現状である.
本発表では,Material Designや各種ライブラリでの表現・実装などを参照し,アプリのトランジションをよりリッチにするための実践方法やTipsを紹介する.
ARKitが登場してから早くも1年以上が経過しました。今ではAppStoreには数多くのARKit搭載アプリがリリースされています。
さらにWWDC2018ではARKit2が登場し、AppleもARに関してかなり注力していることが伺えます。
今日iOSエンジニアを名乗るのであれば、ARKitを扱えて当然の世代になりつつあります。
本セッションではARKitの基本からどのようなことが実現可能かをわかりやすく解説します。
僕らの組織では複数のプロジェクトチームがひとつのアプリに機能を追加・修正するという体制で開発を行っており、リリース日程や実装機能の調整など、コミュニケーションにどうしても時間がかかっていました。この問題を解決するためにfastlaneを使ったタスクの自動化だけでなく、機械的なペースに合わせるリリースフローを実現しようとしているので紹介します。(発表する頃にはうまくいってるはず…)
iOS7より登場した、テキストの音声読み上げAPIであるAVSpeechSynthesizer。スマートスピーカの登場をはじめとして「耳で情報を得る」機会は今後も増えていくのではないでしょうか。
iOS7登場時にリリース・運用してきたTwitter読み上げアプリの経験を通して、AVSpeechSynthesizerを用いたアプリの開発のポイントを発表できればと思います。
ついに発表されたApp Store Connect API。これを使えば何ができるのでしょうか?
公開されている情報からいくつかの業務改善のアイディアをお話しします。
また、実際にApp Store Connect APIクライアントを実装してみて、Swiftで簡単なタスクを記述する方法をお伝えします。
このトークの内容はトーク時にApp Store Connect APIが公開されているかによって変わります。