iOSとwin8_エンジニア勉強会20131106

570 views

Published on

11月6日開催のエスキュービズムエンジニア勉強会資料です。

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
570
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

iOSとwin8_エンジニア勉強会20131106

  1. 1. iOSとWin8の違い 
 2013/10/15
  2. 2. iOSアプリ開発者が
 WinRTアプリ開発に 携わった感想を述べます。
  3. 3. 開発経験 • iOS • 3年 • WinRT • 2週間∼3週間
  4. 4. 目次 1)開発OSの違い 2)IDEの違い 3)UI構築の違い 4)プログラミングの違い i. 言語の違い ii. メモリ管理の違い iii. DBの扱いの違い
  5. 5. 開発OSの違い Operation System iOS: Mac WinRT: Windows8
  6. 6. iOS: Mac • 普及率が低い • • • キーボードからして違う 慣れる必要がある OSは安い($19.99) • Mavericksはアップデートタダ
  7. 7. WinRT: Windows8 • Windows系列 • 広く普及している • OSが高い • アップグレードは安い • Win7からは1200円∼
  8. 8. IDEの違い Integrated Development Environment iOS: Xcode WinRT: VisualStudio
  9. 9. iOS: Xcode • タダ • • • 一瞬、$4.99の時期があった OSも最新にしないと動かない 自分好みに変えづらい • 色とパネルの表示/非表示くらい パネル数は少なめ • • 全画面推奨 画像引用元: https://itunes.apple.com/jp/app/xcode/id497799835
  10. 10. WinRT: Visual Studio • タダ • Win8以降が必要 • 自分好みにカスタマイズ可能 • • • パネルの場所は自由自在に移動可能 パネルが多い • パネルが行方不明になる ショートカットキーが難解 画像引用元: http://www.microsoftstore.com/store/msus/en_AU/pdp/productID.288733900
  11. 11. UI構築の違い User Interface iOS: Interface Builder WinRT: Blend & XAML
  12. 12. iOS: InterFace Builder • 機種依存はほぼ、無し • • • 縦長か否か、のみ ドラッグ&ドロップのみで構成 • コードとのつなぎ込みも可 コーディングと明確に分離 • 中身は解読困難 • Gitでコンフリクトしたら悲惨 画像引用元: http://www.electricpig.co.uk/2011/01/18/apple-icon-secrets-hidden-meanings-hiding-in-plain-sight/
  13. 13. WinRT: Blend & XAML • 2つのツールを行き来しながら作業 • Blend • • ドラッグ&ドロップでUI構築 • XAML • C#との繋ぎ込み等は直書き 機種依存へ考慮が必要 • VMと実機で違う
 挙動をすることも 画像引用元: https://www.facebook.com/MicrosoftExpression
  14. 14. Win8系の解像度について Logical DPIの存在 Dot per Inch フルHD(1980 1080)ディスプレイだけど、
 ストアアプリは「1366 768」で動くよ! 参考URL http://www.slideshare.net/manatokameya/ss-23981128
  15. 15. UI配置の違い • iOS • UIViewの下にUI要素を配置 • 基本は絶対位置を指定 • WinRT • Grid等で画面を区分け • 相対的に配置
  16. 16. UIの動的生成における違い • iOS • コード上で全部書く • WinRT • XAML上で枠組みだけ書き、
 生成元の変数等はC#で書く
  17. 17. プログラミングの違い Programming iOS: Objective-C WinRT: C#(他にもあるヨ)
  18. 18. iOS: Objective-C • オブジェクト指向言語 • • • C++によって潰されかけた言語 丁寧で厳しい言語 学習コストが高い • Mac、iOSアプリ以外に使い道がない • 一部フレームワークの学習コストも高い
 (CoreData、CoreGraphicsなど • Webアプリの火付け役
  19. 19. Obj-Cの例
  20. 20. WinRT: C# • 簡単で学習コストが低い • • 既に習得している人も多い 曖昧な開発も可能 • var(型推論) • null許容型 • • int? j= null + 100; // jはnull 非同期処理がいつの間にか行われることも • http://itpro.nikkeibp.co.jp/article/Watcher/20130331/467401/
  21. 21. メモリ管理の違い Memory Management iOS: ARC WinRT: GC
  22. 22. iOS: ARC • Automatic Reference Counting • MRC(Manual RC)の発展系 1) 元々は手動でメモリ管理 ✴ Release、Retain等記載 2) 「Releaseが抜けている」とエラー表示 3) 「自動で補完すれば良いのでは」 4)ARC!
  23. 23. ARCの注意点 あくまで 「メモリ管理コードを自動で挿入」 するだけ 特異な書き方をすれば 誤った挿入が行われて 落ちる
  24. 24. WinRT: GC • Garbage Collection • 自動でメモリ解放 • • 今後アクセスし得ない変数を解放 • ずっと保持し続ける処理を書くとリーク 重い あまり触れた事ないです…
  25. 25. DB管理の違い Database Management iOS: Core Data WinRT: SQLite Wrapper
  26. 26. iOS: CoreData Object / Relational • O/R Mapperの1つ • 面倒なことを代理実行 • • • データ保護、メモリ管理など 他クラスとの連携も容易 • テーブルビューとは密接に連携 敷居が高い
  27. 27. CoreDataは鬼門 • • • サンプル読んでも何やっているか分からない マニュアルも難しい これだけで本が書けて売れる • 本を読んでも理解できない • 本が間違っていることもある ただし、最近はWeb資料の充実や
 Xcode自体のアップデートで使いやすくなっている
  28. 28. WinRT: SQLite • 拡張(Wrapper)の位置づけ • 簡単 • • 導入迄に1時間も要らなそう データ保護等は自力?
  29. 29. デバッグの違い • iOS • 変数の監視期間が短い • すぐ解放されてしまう • WinRT • 変数の監視期間が長い • デバッグ中にソースコードを
 書き換えられない
  30. 30. その他感想 Other Differences between iOS and Win8
  31. 31. 普及度合いによる差 • iOS • 資料が多い • たいていの問題はGoogle等で解決可 • WinRT • 資料が少ない • フォーラムや英語サイトを
 彷徨う必要有

×