Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Akinori Adachi
2,662 views
iOS9/iPadとマルチタスキング
iPadアプリの開発の話や、マルチタスキング対応や、工夫した点、苦労した点などの話です。
Engineering
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 ①
by
Nagamine Hiromasa
PDF
だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回
by
Kentaro Matsumae
PPTX
大阪発Map guideを用いたスマホアプリ連携実装
by
Osamu Inoue
PDF
SwiftとReactNativeで似たようなUIを作った際の記録
by
Fumiya Sakai
PDF
DeepLのAPIを使って翻訳サイトを作ってみた話 -Bubble.io開発事例-
by
shunohmichi1
PDF
Pixate導入についてのあれこれ
by
Kazuyuki Oikawa
PDF
Xcode 7で始めるCI
by
yuki0211s
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
はじめてのiOSアプリ開発 ①
by
Nagamine Hiromasa
だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回
by
Kentaro Matsumae
大阪発Map guideを用いたスマホアプリ連携実装
by
Osamu Inoue
SwiftとReactNativeで似たようなUIを作った際の記録
by
Fumiya Sakai
DeepLのAPIを使って翻訳サイトを作ってみた話 -Bubble.io開発事例-
by
shunohmichi1
Pixate導入についてのあれこれ
by
Kazuyuki Oikawa
Xcode 7で始めるCI
by
yuki0211s
Viewers also liked
PDF
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
by
Ichiro Yamamoto
PDF
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
by
徹 上野山
PPTX
TensorFlowで会話AIを作ってみた。
by
tak9029
PDF
Mix and Match / Swift and Objective-C
by
Goichi Hirakawa
PDF
Server Side Swift with Swag
by
Jens Ravens
PDF
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
by
Kosuke Ogawa
PDF
Swiftでの関数型プログラミングについて考えていること
by
Shingo Sato
PDF
Xcode tips
by
Motoki Narita
PDF
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
PDF
奥行きを意識したプロダクト-iOS9で変わる体験-
by
正典 三橋
PDF
shinobu.apk #1
by
Shinobu Okano
PDF
Beyond JSON with FlatBuffers
by
Maxim Zaks
PDF
Xcode 7 の新しいところ #cm_ios9
by
Tomohiro Kumagai
PDF
Swift2.x を Scala からみる
by
Yuichi Adachi
PDF
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
by
Tomohiro Kumagai
PPTX
iOSアプリの自動テストをはじめよう
by
Toshiyuki Hirata
PPTX
Tensor flow唐揚サーバーロボット rev1
by
Yuki Nakagawa
PPTX
賢くなる自動フィードアグリゲータの制作 9月号
by
Akio Kondo
PDF
iOS 9 Bootcamp #6 UIKit
by
Shingo Hiraya
PDF
Goだけでモバイルアプリを作ろう
by
Takuya Ueda
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
by
Ichiro Yamamoto
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
by
徹 上野山
TensorFlowで会話AIを作ってみた。
by
tak9029
Mix and Match / Swift and Objective-C
by
Goichi Hirakawa
Server Side Swift with Swag
by
Jens Ravens
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
by
Kosuke Ogawa
Swiftでの関数型プログラミングについて考えていること
by
Shingo Sato
Xcode tips
by
Motoki Narita
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
奥行きを意識したプロダクト-iOS9で変わる体験-
by
正典 三橋
shinobu.apk #1
by
Shinobu Okano
Beyond JSON with FlatBuffers
by
Maxim Zaks
Xcode 7 の新しいところ #cm_ios9
by
Tomohiro Kumagai
Swift2.x を Scala からみる
by
Yuichi Adachi
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
by
Tomohiro Kumagai
iOSアプリの自動テストをはじめよう
by
Toshiyuki Hirata
Tensor flow唐揚サーバーロボット rev1
by
Yuki Nakagawa
賢くなる自動フィードアグリゲータの制作 9月号
by
Akio Kondo
iOS 9 Bootcamp #6 UIKit
by
Shingo Hiraya
Goだけでモバイルアプリを作ろう
by
Takuya Ueda
Similar to iOS9/iPadとマルチタスキング
PPTX
iPadに真似ぶ windows 8 タブレットプログラミング
by
Masuda Tomoaki
PDF
iPhone アプリ開発の実例
by
Tokyo City University, Ueno Lab.
PDF
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
PDF
AppPotモバイルアプリ開発『内製化』
by
Ryohei Sogo
PDF
iPadアプリ選択のベストプラクティス(in 名古屋)
by
feedtailor
PDF
もう怖くないモバイルアプリ開発!【デブサミ関西2014】
by
Toshiki Iga
PDF
iPadアプリ選択のベストプラクティス
by
feedtailor
PDF
既存アプリのiOS8対応 #ios8yahoo
by
Yahoo!デベロッパーネットワーク
PDF
iPhone develop for Beginner
by
Sachiko Kajishima
PDF
効率的なアプリ開発のベストプラクティス
by
yayugu
PDF
もう怖くないモバイルアプリ開発!
by
Toshiki Iga
PDF
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
PDF
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
by
cm_saito
PDF
20140918 i os8イベント_ios-history (公開用)
by
Rikitake Oohashi
PDF
iPad Marketing
by
The ANSWER Consulting LLP
PDF
DevLOVE iPhoneアプリ勉強会
by
Toshimitsu Takahashi
PPTX
インタラクションデザインの考察
by
Hidetoshi Mori
PPTX
卒業制作
by
Katsuro-u
PDF
エンタープライズにおける iOSアプリ開発・導入のいろは
by
feedtailor
PDF
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
by
feedtailor
iPadに真似ぶ windows 8 タブレットプログラミング
by
Masuda Tomoaki
iPhone アプリ開発の実例
by
Tokyo City University, Ueno Lab.
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
AppPotモバイルアプリ開発『内製化』
by
Ryohei Sogo
iPadアプリ選択のベストプラクティス(in 名古屋)
by
feedtailor
もう怖くないモバイルアプリ開発!【デブサミ関西2014】
by
Toshiki Iga
iPadアプリ選択のベストプラクティス
by
feedtailor
既存アプリのiOS8対応 #ios8yahoo
by
Yahoo!デベロッパーネットワーク
iPhone develop for Beginner
by
Sachiko Kajishima
効率的なアプリ開発のベストプラクティス
by
yayugu
もう怖くないモバイルアプリ開発!
by
Toshiki Iga
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
by
cm_saito
20140918 i os8イベント_ios-history (公開用)
by
Rikitake Oohashi
iPad Marketing
by
The ANSWER Consulting LLP
DevLOVE iPhoneアプリ勉強会
by
Toshimitsu Takahashi
インタラクションデザインの考察
by
Hidetoshi Mori
卒業制作
by
Katsuro-u
エンタープライズにおける iOSアプリ開発・導入のいろは
by
feedtailor
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
by
feedtailor
iOS9/iPadとマルチタスキング
1.
マルチタスキングを考慮した iPadアプリ開発 NOV/18,2015 安達 彰典
4.
自己紹介 : 安達彰典@adachi_c •
趣味 ・作ってるゲーム(C++) ・qMapEditor(objc) (マップ・エディタ) ・qMapBuilder(Go) (自動地形生成)
5.
スライドの目的 • iOS9対応iPadアプリを作るにあたって苦労した 点、工夫すると良さそうな点を共有
6.
目次 1.AppCode 2.開発フロー 3.Carthage 4.iPad開発の特徴 5.ワイヤーフレーム 6.その他考慮ポイント 7.モデル/ビューの完全な分離 8.描画関連デリゲート順番 9.Swiftについて 10.まとめ
7.
iOS9とAppCode • 使いたい • 11月3日までAppCode3.2だった •
Xcode7に対応していない • JetBrainsに金払いながらもXcodeを使ってる期間
8.
iPadアプリ開発/最初の分岐 • iOS7に対応するのか? • マルチタスキングに関係ないが苦難の道 •
主にSwiftライブラリ/8以上対応が多い • ユニバーサルバイナリか? • マルチタスキングに関係ないが苦難の道
9.
iPadアプリ開発の特徴 • Split view •
iOS9の新機能 • Compact(SizeClass)とRegular(SizeClass)の2パターンの画面設 計が必要 • 回転 • LandscapeとPortraitも、traitCollectionから引っ張ってこれる が、iOS7以前ではtraitCollectionがない • 結局書き分ける
10.
ワイヤーフレーム • QAしやすいように作ることが全て • 作り手も使い手も理解しやすいものを作る •
状態遷移を明確化し、アプリ全体のルールとする • 状態/イベント/アクション
12.
その他考慮ポイント1 • 開発メンバーが2人以上ならこの辺を統一しておく と良いかもしれない
13.
その他考慮ポイント • あとからのgrepを考慮 • 具象に対する呼び方、用語の統一 •
クロージャかデリゲートか • 迷ったらデリゲート • 大事なやつはアクセサを作る
14.
その他考慮ポイント • assert • スキあらばあらゆる箇所に入れる •
状態数 • とにかく状態を減らす • クロージャ • ヒープ渡しでなく、スタック渡しするようにする • デリゲートのほうが一本の線で表せてオブジェクト指向崩さない
15.
その他考慮ポイント • シングルトン • 実質的なグローバル変数、追加時は厳格に協議 •
オブジェクト指向を壊す
16.
その他考慮ポイント • NSNotification • 逃げの設計 •
オブジェクト指向を壊す • メモリリーク+postNotificationで死はよくある話
17.
その他考慮ポイント • 値渡しか参照渡しか • 値渡しを使う •
モデルはstructでいいかな感 • パフォーマンスが落ちるところだけ参照渡しに
18.
モデル/ビューの完全な分離 • あちこちからビューの更新、モデルの更新というこ とを避けたい
19.
モデル/ビューの完全な分離 • メインループを意識する • 1.ユーザアクション以外のイベント->モデル操作 •
2.ユーザアクション->モデル操作 • 3.モデル操作された分のビュー操作 • 1ループで • モデル操作フェーズ • ビュー操作フェーズ • をわかりやすくする。
20.
モデル/ビューの完全な分離 • ビューとモデルの不整合をなくすとは • すなわち、状態の把握、同期 •
レンダリング時にいつ何が呼ばれるかを整理 • その中でsplit時、rotate時の呼びだされ順を知る
21.
描画関連デリゲート順 • 前提 • storyboardで基本の骨組みを作る •
個々のビューはxibをロードする • 状態が多いので、なるべくコード量を減らしたい • 状態の数が多いほど不整合発生する
22.
描画関連デリゲート順 • ビューの操作 • updateViewConstraints, •
updateConstraints • layoutSubview • からの操作に限定 • アニメーションなどもlayoutConstraintsのみ使う
23.
描画関連デリゲート順 • 注意ポイント • User
Interaction/rotate/splitがどこに入るか? • アニメーションをどうやるのか? • タップハンドラなどから実行 • extensionしまくるのも手 • ヘルパを用意、これもgrepしやすいと良い
24.
描画関連デリゲート順 • 何を使っていくか • StoryBoard,
Xibに定義していればコードを記述しな くても良い • 記述する場面(いずれもレアケース) • xibをロードしないviewの生成、貼り付け、剥がし • 回転やsplitしたあとで、状態がかわるとき
25.
描画関連デリゲート順 • UIViewController • 1.viewWillLayoutSubviews(ビューが再レイアウトされるときに呼ば れる) •
使わない • 2.viewDidLayoutSubviews • 使わない • 3.updateViewConstraints(Constraintsが変更されるときに呼ばれる) • 使わない
26.
描画関連デリゲート順 • UIView • 1.layoutSubviews(NeedsLayoutが有効時) •
使う • やること • removeFromSuperview • addSubview • addConstraints • 2.updateConstraints(NeedsUpdatedConstraintsが有効時) • 使わない
27.
描画関連デリゲート順 • 回転 • iOS7 •
1.willRotateToInterfaceOrientation • 2.didRotateFromInterfaceOrientation • 使う • やること: • C/Rの状態変更後のビュー調整
28.
描画関連デリゲート順 • 回転 • iOS8,9 •
viewWillTransitionToSize • traitCollectionWillChange • traitCollectionDidChange • 使う • やること: • C/Rの状態変更後のビュー調整
29.
描画関連デリゲート順 • Split View •
0.デバイダーをつまんだ • 1.applicationWillResignActive • 2.デバイダーを動かす • 3.各境界に達したときにlayoutSubviewが呼ばれる • 4.デバイダーを離す • 5.SizeClassが変わっていればdidChangeTraitCollectionが呼ばれる • didChangeTraitCollectionで状態変化調整しておけば基本的になにもしなくて良い
30.
結果こうなる • TopViewController一強時代 • デリゲート経由での通知を使う •
Notificationやシングルトンをやめる • よく使うところはオンメモリ(記事/リストのビューはキャッシュ) • アニメーションはヘルパ • コード的にはextensionを作りまくる • Split View「そのもの」については対応しなくて良い
31.
Swiftも使った所感 • enum無双 • varが定義でき、それぞれのcaseに機能もてる •
エンドポイントのURLかえすやつとか • extention無双 • 可読性アップのためにとにかく分ける • ジェネリクス • 共通処理をまとめられる • APIアクセスのコードなどで使ってます • CommonRequestやCommonResponseを継承したものをFetcher<Res>などとしてわたして、クラス 毎のパースが動作
32.
まとめ • マルチタスキングとか使いたい、iOS9/Swift開発したいときは deployment target
iOS8以上がオススメ • とにかく状態が多いのでQAしやすいように状態を整理するの がオススメ • コードでビューを制御しようとするといっぱいかかないとダ メなのでxibやstoryboardに書くのがオススメ • Swift使いたい人は、とにかくenumを伸ばしていくのオススメ
Download