SlideShare a Scribd company logo
iOS13 SDK による
全機能置き換え
Part.1 SwiftUI 編
自己紹介
能登 要 (@notoroid)
• iOSアプリ開発者
• 屋号:いります電算企画
• @notoroid
• @irimasu
• eスポーツ
題目
• レガシーアプリの刷新
• SwiftUIを動かしてみる
• まとめ
話す範囲
• SwiftUI Tutorials
• https://developer.apple.com/tutorials/swiftui/tutorials
• Creating and Combining Views
• Building Lists and Navigation
• Handling User Input
• Composing Complex Interfaces
• Working with UI Controls
話さない範囲
• 既存UI との組み合わせ
• アニメーション
• OSごとへのSwiftUI の適用
次回以降で話す内容
• Combine framework
• KeyPath (Swift5.1)
• @dynamicMemberLookup
https://github.com/notoroid/Swift
UIBatteryMonitor
資料
レガシーアプリの刷新
iOS13 リリース
iOS13に合わせて
既存アプリを刷新中
iOS13 SDK による 全機能置き換え Part1
GloriousBattery (グロリアスバッテリー)
• バッテリーモニター(ユーティリティー)
• 最大4台(実機1+リモート3台)
• 手持ちのiPhoneからiPadなどの機器のバッ
テリー状態確認可能
• 自宅にあるiPhoneのバッテリー状態確認可
能
バージョン1は技術デモ
• 1) バッテリー情報(実機、リモート)の表示
• 2) バッテリー状態の送信
• 2) リモート先バッテリー状態の受信
• 4) 招待QRコードの生成と表示
• 5) 招待QRコードの読み取り(リモート先と接続)
• 6) 色テーマの選択
• 7) バックグラウンド動作(バッテリー情報の送受信)
• 8) バッテリーログの記録
• 9) バッテリーログに基づいた履歴の表示
• 10) バッテリー低下時の通知機能
• 11) 非消費型アプリ内課金の実装
• 12) ローカライズ機能
• Firebase(現在のFirebase
RealtimeDatabase) の技術デモ
• CoreImage(QRCode)
• InAppPurchase(非消費型アプリ内課金)
• バックグラウンド更新
• ローカライズ
バージョン2はレガシー化
部分の差し替えに挑戦
何がレガシー化したの?
• 使用言語 Objective-C
• 最新の開発手法とは縁遠くなりがち(Swift向けが多い)
• iOS13 SDKよりはるか以前の開発手法が残っていた
• バックグラウンド処理(リモート通知以外のBackGround Fetch)
• バックエンドサーバー (ParseServer)
iOS13 SDK で必要な対応
• バックグラウンド動作(バッテリー情報の送受信)
• RemoteNotification + Background Fetch
• iOS7からのBackground Fetchはリモート通知以外deprecated.
• アプリ内イメージの置き換え
• アプリ内で自作したイメージリソースをSF Symbolsに置き換え
SF Symbols
Objective-C からSwift変更に
合わせてSwiftUI を全面適用
SwiftUI 全面適用すると
開発手法の大転換になるので
技術的な棚卸しにちょうど良い
もちろん勝算もあり〼
iOS13 SDK による 全機能置き換え Part1
4セルSafeAreaまで
塗りつぶし
iOS13 SDK による 全機能置き換え Part1
バッテリー量
単位
時間毎グラフ
充電状態
端末名
円グラデーション
ユーティリティーアプリだからSwiftU Iを適用できる
• メイン画面と設定画面
• 画面構成が少ない
• ビジュアルを前面に押し出したメイン画面
• 置き換えが用意そうな簡素な設定画面
• ジェスチャーに対応している
• SwiftUI でジェスチャーはサポート
挑戦した結果
バージョン1の80%実現
バージョン1機能の80%実現済
残りはアプリ内課金と、ローカライズ
SwiftUIを動かしてみる
https://github.com/notoroid/Swift
UIBatteryMonitor
資料
サンプル
• SwiftUIBatteryMonitor/StartingPoint が開始時点
• Step1、Step2 が中間ステップ
• SwiftUIBatteryMonitor/Complete が完成
データ連動のためのキーワード
• ObservableObject/@Published
• SwiftUI 側へ情報をPublishするための定義セット
• .environmentObject()/@EnvironmentObject
• SwiftUI全体で有効な環境オブジェクトの設定
• @State / @Binding
画面構成のキーワード
• ForEach
• VStack,HStack,ZStack
• List
まとめ
• iOS13 に合わせてレガシーなアプリを刷新中です
• iOS13 SDKで示された開発手法に合わせます
• SwiftUIは前提知識持ち開発者も初心者もだいたいドツボにハマります
• SwiftUIを使うとコンパイラが悲鳴をあげます

More Related Content

PPTX
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
PPTX
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
PPTX
Voice interaction api for android m
PPTX
ionic - cross platform mobile app 開発
PDF
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
PDF
スキスキIonic
PDF
App extension for iOS
PDF
Directiveで実現できたこと
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
Voice interaction api for android m
ionic - cross platform mobile app 開発
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
スキスキIonic
App extension for iOS
Directiveで実現できたこと

What's hot (19)

PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
PDF
jQuery Mobile で作る" 実用" スマフォアプリ
PPTX
【ABC2014Spring LT】AngularJSでWEBアプリ開発
PDF
エンタープライヤーのためのWeb Componentsハンズオン
PDF
App Extensions in iOS ver JP
PDF
Visual studio 2019 updates pickup!
PPTX
Hello, React!! まで導く Reactの基礎
PDF
Prott for iOS
PDF
iPhoneアプリのUIデザイン - NoteCubeの場合
PPTX
Azure Mobile Services と Azure Mobile Apps
PDF
スマートスピーカーのバックエンドで Azure を使う方法
PPTX
smartFXにおけるApache Cordovaの活用について
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
PPTX
ACI Stateful APP 作ってみた
PPTX
CordovaでAngularJSアプリ開発
PDF
はじめてのiOSアプリ開発 ①
PDF
20120316 designerworkshoppublished
PDF
Potatotips3 hoshi gaki_akira_iwaya
PDF
iOS 8 App Extension
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
jQuery Mobile で作る" 実用" スマフォアプリ
【ABC2014Spring LT】AngularJSでWEBアプリ開発
エンタープライヤーのためのWeb Componentsハンズオン
App Extensions in iOS ver JP
Visual studio 2019 updates pickup!
Hello, React!! まで導く Reactの基礎
Prott for iOS
iPhoneアプリのUIデザイン - NoteCubeの場合
Azure Mobile Services と Azure Mobile Apps
スマートスピーカーのバックエンドで Azure を使う方法
smartFXにおけるApache Cordovaの活用について
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
ACI Stateful APP 作ってみた
CordovaでAngularJSアプリ開発
はじめてのiOSアプリ開発 ①
20120316 designerworkshoppublished
Potatotips3 hoshi gaki_akira_iwaya
iOS 8 App Extension
Ad

Similar to iOS13 SDK による 全機能置き換え Part1 (7)

PDF
SwiftUIについての所感
PDF
SnapshotとRunscript
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
PDF
SwiftとReactNativeで似たようなUIを作った際の記録
PDF
Storyboard
PDF
iOS 8/Swift 概要 #ios8yahoo
PDF
IBDesignable / IBInspectable で UIプロトタイピンガブル
SwiftUIについての所感
SnapshotとRunscript
iPhoneアプリ開発の歩き方〜Swift編〜
SwiftとReactNativeで似たようなUIを作った際の記録
Storyboard
iOS 8/Swift 概要 #ios8yahoo
IBDesignable / IBInspectable で UIプロトタイピンガブル
Ad

More from Kaname Noto (6)

PDF
SwiftUIのライブコーディングするとxcodeが◯回落ちる
PDF
Photos vs Assets Library - いまさら始めるPhotos.framework
PDF
Firebase 概要
PDF
明日のためのBaaS - BaaS for tomorrow
PDF
iOS グラフィックス Tips
PDF
Core Data バッドプラクティス
SwiftUIのライブコーディングするとxcodeが◯回落ちる
Photos vs Assets Library - いまさら始めるPhotos.framework
Firebase 概要
明日のためのBaaS - BaaS for tomorrow
iOS グラフィックス Tips
Core Data バッドプラクティス

iOS13 SDK による 全機能置き換え Part1