×
  • Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 

だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回

on

  • 69 views

#potatotips (iOS/Android開発Tips共有会) 第7回

#potatotips (iOS/Android開発Tips共有会) 第7回
で発表した資料です。

Statistics

Views

Total Views
69
Views on SlideShare
66
Embed Views
3

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 3

https://twitter.com 3

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
Post Comment
Edit your comment

    だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回 だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回 Presentation Transcript

    • だいすきStoryboard 【第7回】potatotips (iOS/Android開発Tips共有会) DeNA 松前健太郎 @kenmaz ※背景画像と内容は直接の関係はありません
    • 自己紹介 • 松前健太郎 @kenmaz • 前職 動画にコメント流す会社でiOS/スマホまわり • 現職 マンガボックスiOS開発 ________________
    • 続きはウェb • CodeIQ • DeNA中の人が解説する「マンガボッ クス」システム構成とiOSアプリの 内部構成 • https://codeiq.jp/magazine/ 2014/05/9946/
    • StoryboardのTips
    • UIパーツの定義 • なんども繰り返し使うビューはUIパーツとして定義 したい • xibを個別に作ってもいいけど、どうせなら storyboardで完結したい
    • • canvasにViewControllerを追加 • StoryboardIdを設定 • Simulated MetricsのSize = Freeform にして適当にリサイズ • 必要に応じてUIViewのサブクラスを作ってCustom Classに設定 • viewがとれたらViewControllerは破棄しちゃってOK UIViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"gridview"]; MJGridView* gridView = (MJGridView*)vc.view; ... //labelの設定、sizeの調整など ... [self.scrollView addSubView:gridView]
    • 表示要素の切り替え • 条件に応じて表示内容切り替えたい • 要素の位置は代替おなじ • 重なっちゃう
    • ContainerView
    • まーちょっと大げさかもしれないけど
    • セグエの有効無効を条件に応 じて切り替え - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { if ([identifier isEqualToString:@"normal_logo"]) { //通常号のロゴ画像 return [self.magazine isNormalVolume]; } if ([identifier isEqualToString:@"digest_logo"]) { //ダイジェスト号のロゴ画像 return [self.magazine isDigestVolume]; } .... }
    • アプリ起動時に 処理待ちしたい • @sintario さんにおしえてもらった b • アプリ起動して、メイン画面が表示されるまでに、 確実に完了させたい処理がある • バージョンアップ時のマイグレーションとかとか • containerViewを使ってフェーズ分けよう
    • initial VC ↓ ←main VC ←waiting VC
    • @implementation MJRootViewController ! - (void)viewDidLoad { [super viewDidLoad]; ! //必要であればマイグレーション [MJMigration migrateWithCompletion:^{ //マイグレーションが完了したので、メイン画面のロード開始 self.migrationFinished = YES; [self performSegueWithIdentifier:kMainEmbedSegueId sender:self]; }]; } ! ! - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender: (id)sender { return self.migrationFinished; }
    • Storyboard分割 • デバイスごと、機能毎に分割 • storyboardデカくなりすぎるとxcode重い (SSD 必須) • コンフリクトとか
    • その他 (略) • 微妙な操作はカーソルキーで • ダブルタップすればカーソルキーで微調整できるよ • プレビュー機能使おう • iOS6のdeltaの調整のときに使うくらいかな? • option + preview ってわかりヅラ • 回転したときのチェック • Simulated Metrics > Orientation • Device Family = iPadのときの追加機能 • push,modal,custom 以外にも popover, replace(master-detail) • popover: 吹き出し方向変えたり, アンカーの位置指定したり • replace: master/detailのビュー置換の指定 • Auto Layout については聞かないでください(重要)
    • DeNAでは エンジニアを 募集しています 渋谷はよい所です 渋谷タワレコ前にて遭遇(撮影許可済み)