デザインにもこだわったUIの事始め
∼ 今人気のアプリであるようなUIの一部分を真似っこしてみる ∼
自己紹介
✦
今までの仕事履歴(本業)
石川県金沢市生まれ
本業はサーバーサイドのプログラマ ※Rails&PHP使い
26歳∼30歳: Ruby / PHPのプログラマ
23歳∼25歳:Webデザイナー兼ディレクター
Objective-C歴:4ヶ月くらい Swift歴:60日程度
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向けと食べ物系コンテンツのお仕事が多い…
http://www.coffre.me/
シンプルにつけられる家計簿アプリ「Coffre」の作者
✦
酒井文也(さかい ふみや)
東京(大塚)住まいの30歳
デザインが素敵なアプリたち(1)
Locari TRILL Fril ciel
 (ここがポイント)
①UITableView・UICollectionViewのセルと写真のサイズを合わせる
②スワイプやボタンの動きに連動してナビゲーション・コンテンツが動く
✦
キュレーションメディア系のアプリを中心にPickup
例1)女性向けのアプリ
デザインが素敵なアプリたち(2)
例2)その他のメディア系アプリ
cakes Antenna WEAR macaroni
 (ここがポイント)
①UITableView・UICollectionViewのセルと写真のサイズを合わせる
②スワイプやボタンの動きに連動してナビゲーション・コンテンツが動く
✦
キュレーションメディア系のアプリを中心にPickup
デザイニックなUIを作る時の誘惑
✦
便利そうなライブラリも沢山公開されている
・バージョンアップに対応しているか?
意外とあるこんな落とし穴
・自分でカスタマイズはできそうか?
・デザイン適用してもくずれたりしない?
・想定しているものに近いライブラリなの?
勿論CocoaPodはものすごく便利です
などなど、アップデートや運用・設計の中
で問題や懸念が生じる可能性もあります。
今回のサンプル&セッションの方針
おおまかな仕組みの概要を知った上でライブラリを
使った方が良いと個人的に思ったので、
「まずはできそうな所から真似してみよう」
その反面、
・Xib
・UITableView
・UICollectionView
・UIScrollview
・ContainerView
・GestureRecognizer
実現する上でのキーワードは
CocoaPod
活用で工数短縮!
では実際にサンプルを!
https://github.com/fumiyasac/variousViewsOfSwift/
✦
おおまかな仕様や動きについて
UITableView UICollectionView UIScrollView(縦)
スワイプ
または
上のボタン
スワイプ
または
上のボタン
スワイプ or ボタン押下
でアニメーション
セクションに応じて
読み込むセルが違う
縦のスクロール
(ここがポイント) ひとつのViewControllerだけで制御をしていない(ContainerViewを活用)
✦
こちらのURLからどうぞ!
セクションに応じて
読み込むセルが違う
Pointその1 : ContainerViewで分割
Container(入れ物)の名前の通り、ViewControllerの中にViewControllerを表示。
(ここがポイント) ViewControllerが分割できるので、処理がすっきりしやすい
✦
ContainerViewとは?
それぞれのViewControllerはそれぞれ独立して振舞うことができる
イメージとしてはWebサイトのiframe(インラインフレーム)のようなイメージ
Containerに
付随する
ViewController
Containerを
乗せた土台の
ViewController
UIを作る上でのメリット
1つのViewControllerに詰め込まなくて良い
→ デザインや振る舞いの違う画面を共存可能
遷移がわかりやすくなる
→ ViewControllerが追いかけやすくなる
ContainerViewとStoryBoardの相性抜群!
→ 作業や工数の短縮にも効果がありそう
Pointその1 : ContainerViewサンプル解説
EvianController VolvicController ContrexController
(ここがポイント) ・土台→Containerの制御 ・中身→各UIごとの処理や振る舞い と分けて記述する
✦
今回のサンプルのポイント
土台となるViewControllerの中に各ViewControllerを表示するContainerViewを配置。
土台となるViewController → 各Containerの表示切替処理(ボタン・スワイプ)を記述。
ViewController.swift
土台
中身
EvianController.swift
VolvicController.swift
ContrexController.swift
各Controllerの関係
Pointその2 : Xibを使ってセルをカスタム
アプリの画面を構成するパーツの配置や大きさなどを記録したファイル
(ここがポイント) UITableView・UICollectionViewは良く使う部分なので、是非とも覚えておくと良い
✦
Xibとは?
セルやパーツのひとかたまりに対しての調整がしやすくなる
セルひとかたまりを独立した1部品として、切り出して扱うイメージ
UIを作る上でのメリット
セル単位での再利用ができる
→ 同じようなレイアウトの場合は工数短縮になる
swiftファイルとXibを1セットでセルを作る
→ 工夫次第でデコレーションも多彩にできる
StoryBoard上も複雑にしなくて済む
→ 部品として切り出して分割できる
UITableViewの
セルに対応する
UICollectionViewの
セルに対応する
構成はこんな感じです
Pointその2 : Xib部分のサンプル解説
(ここがポイント) セクションの番号によって値や読み込むXibファイルを変えてあげる
✦
今回のサンプルのポイント
sectionごとに読み込むUITableView・UICollectionViewのXibを変えてあげる
UITableView indexPath.section==0
の時に読み込むセル
UICollectionView
indexPath.section==1
の時に読み込むセル
indexPath.section==0
の時に読み込むセル
indexPath.section==1
の時に読み込むセル
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
→ セクション(section)の値で分岐をする
→ セクション(indexPath.section)の値で分岐をする
※CollectionView の場合はRow が Itemに変わる例)UITableViewの場合
UITableViewと
UICollectionViewは似ている
✦
ContainerViewで今回の参考部分
今回のサンプルで参考にしたもの
✦
UITableView, UICollectionViewでの今回の参考部分
Qiitaにあったノウハウ
1. Storyboardの"ContainerView"を使ってみる
http://qiita.com/paming/items/d8a29d644c994ce60d6a
2. StoryboardとContainerを多用した開発のメリットとデメリット
http://qiita.com/reikubonaga/items/2e88ddda1ac0868a2729
Think Big Act Local via @himara2 さんの記事
SmartNews風のレイアウトをInterface Builderを使ってつくる
http://himaratsu.hatenablog.com/entry/objc/smartnews
Qiitaにあったノウハウ
Storyboard上のUITableViewCellをxibで作る場合はregisterNib:forCellReuseIdentifier:メソッドが便利
http://qiita.com/yimajo/items/81a1331fea2592821061
✦
1つのViewControllerに収まりきらないときはContainerViewを活用
※今後ともデザインにこだわったUIに関するトピック等はグループ等でも共有していきます。
✦
まずはUIKitの特性を知った上で実現できるかをやってみる
セッションのまとめ
✦
ファイルが多くなることが多いのでXibの設定もれ等には注意
✦
GestureRecognizerでの画面切り替えやアニメーションは他のアプリの
タイミングを参考にすると良い
✦
AutoLayoutも合わせて使う場合は難易度が上がるので注意が必要
✦
実現する上でのキーワード「Xib・UITableView・UICollectionView・
UIScrollview・ContainerView・GestureRecognizer」に関する理解
ご静聴ありがとうございました!

More Related Content

PDF
Container view活用術とポイントになる部分
PDF
Parse.comを使ってみた感想とまとめ
PDF
自分のライブラリを1年運用をして見た振り返りと知見
PDF
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
PDF
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
PDF
Swiftビギナーズ勉強会 第1回 @Co-Edo
PDF
あのアプリの動きをUIKitのみでDIYしてみる(part2)
PDF
デザイナーの私と サービスをつくる私
Container view活用術とポイントになる部分
Parse.comを使ってみた感想とまとめ
自分のライブラリを1年運用をして見た振り返りと知見
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
Swiftビギナーズ勉強会 第1回 @Co-Edo
あのアプリの動きをUIKitのみでDIYしてみる(part2)
デザイナーの私と サービスをつくる私

What's hot (20)

PDF
福井で「しあわせデザイナー」になるために
PDF
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
PDF
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
PDF
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
PDF
Fukui Biz Cafe Side.I #1 「デザイナーのひきだし」
PDF
Pixate導入についてのあれこれ
PDF
ブランディングを意識したサービス開発の一歩
PDF
sketchで変化したワークフロー
PDF
Rails5とAPIモードについての解説
PDF
デザイナーとディレクターのイイ関係の作り方
PDF
デザインツール戦争とMaterial Theme Editor
PDF
Pixateワークショップ―アプリケーションの概要とpixateの使い方 初級編―.pdf
PDF
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
PDF
Sketchで変わるワークフロー
PDF
エクスペリエンス・デザイン
PDF
SwiftとReactNativeで似たようなUIを作った際の記録
PPTX
これまでのポートフォリオ履歴全部。 @2018/2/26 ポートフォリオナイト
PDF
Start Sketch.app
PPTX
Onsen UIが目指すもの
PDF
デザインのための経営のデザイン
福井で「しあわせデザイナー」になるために
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Fukui Biz Cafe Side.I #1 「デザイナーのひきだし」
Pixate導入についてのあれこれ
ブランディングを意識したサービス開発の一歩
sketchで変化したワークフロー
Rails5とAPIモードについての解説
デザイナーとディレクターのイイ関係の作り方
デザインツール戦争とMaterial Theme Editor
Pixateワークショップ―アプリケーションの概要とpixateの使い方 初級編―.pdf
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
Sketchで変わるワークフロー
エクスペリエンス・デザイン
SwiftとReactNativeで似たようなUIを作った際の記録
これまでのポートフォリオ履歴全部。 @2018/2/26 ポートフォリオナイト
Start Sketch.app
Onsen UIが目指すもの
デザインのための経営のデザイン
Ad

Similar to デザインにもこだわったUIの事始め (Episode1) (20)

PDF
デザインにもこだわったUiの事始め3
PPTX
2012 05-19第44回cocoa勉強会発表資料
PDF
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
PDF
Approach of Prototyping for making Application User Interface about iOS
PDF
Androidアプリの魅力的なインターフェース〜本当にiOSアプリのデザインを流用するだけでいいの?〜
PDF
ハンドメイドカレンダー第15回potatotips用
PDF
DevLOVE iPhoneアプリ勉強会
PDF
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
KEY
1.29.user,user,user
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
PDF
デザイナーとエンジニアが話す、iOSアプリケーション開発
PDF
Css nite(2010.09.23)
PDF
ユーザインターフェース10分講座
PDF
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
PDF
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
PPTX
Ssi 20150519
PDF
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
PDF
2022年の抱負とここ数年続けてきたインプット
PDF
最近の業務やAndroid関連のインプットと振り返り
PDF
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
デザインにもこだわったUiの事始め3
2012 05-19第44回cocoa勉強会発表資料
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
Approach of Prototyping for making Application User Interface about iOS
Androidアプリの魅力的なインターフェース〜本当にiOSアプリのデザインを流用するだけでいいの?〜
ハンドメイドカレンダー第15回potatotips用
DevLOVE iPhoneアプリ勉強会
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
1.29.user,user,user
iPhoneアプリ開発の歩き方〜Swift編〜
デザイナーとエンジニアが話す、iOSアプリケーション開発
Css nite(2010.09.23)
ユーザインターフェース10分講座
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
Ssi 20150519
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
2022年の抱負とここ数年続けてきたインプット
最近の業務やAndroid関連のインプットと振り返り
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
Ad

More from Fumiya Sakai (20)

PDF
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
PDF
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
PDF
少しずつ手厚くして不具合や仕様漏れを防ぐために
PDF
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
PDF
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
PDF
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
PDF
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
PDF
少しずつキャッチアップしていくAndroidアプリ開発
PDF
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
PDF
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
PDF
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
PDF
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
PDF
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
PDF
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
PDF
アプリ開発におけるテキスト装飾のアイデア集
PDF
UI表現ライブラリを有効活用して iOSアプリのUIをオシャレにするワザ紹介
PDF
iOSアプリで気になった動きや表現を上手にアレンジして活用してみる
PDF
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
PDF
Hint of a little ingenuity about UI.
PDF
メディアアプリでよく見る無限スクロールするタブの動きへの考察
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
少しずつ手厚くして不具合や仕様漏れを防ぐために
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
少しずつキャッチアップしていくAndroidアプリ開発
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
アプリ開発におけるテキスト装飾のアイデア集
UI表現ライブラリを有効活用して iOSアプリのUIをオシャレにするワザ紹介
iOSアプリで気になった動きや表現を上手にアレンジして活用してみる
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of a little ingenuity about UI.
メディアアプリでよく見る無限スクロールするタブの動きへの考察

デザインにもこだわったUIの事始め (Episode1)