iOSとWin8の違い


2013/10/15
iOSアプリ開発者が

WinRTアプリ開発に
携わった感想を述べます。
開発経験

•

iOS

• 3年

•

WinRT

• 2週間∼3週間
目次
1)開発OSの違い
2)IDEの違い
3)UI構築の違い
4)プログラミングの違い
i. 言語の違い
ii. メモリ管理の違い
iii. DBの扱いの違い
開発OSの違い
Operation System

iOS: Mac
WinRT: Windows8
iOS: Mac
• 普及率が低い
•
•

• キーボードからして違う
慣れる必要がある
OSは安い($19.99)
• Mavericksはアップデートタダ
WinRT: Windows8
• Windows系列
• 広く普及している
• OSが高い
• アップグレードは安い
• Win7からは1200円∼
IDEの違い
Integrated Development Environment

iOS: Xcode
WinRT: VisualStudio
iOS: Xcode
• タダ
•
•

• 一瞬、$4.99の時期があった
OSも最新にしないと動かない
自分好みに変えづらい
• 色とパネルの表示/非表示くらい
パネル数は少なめ

•
• 全画面推奨

画像引用元: https://itu...
WinRT: Visual Studio
• タダ
• Win8以降が必要
• 自分好みにカスタマイズ可能
•
•

• パネルの場所は自由自在に移動可能
パネルが多い
• パネルが行方不明になる
ショートカットキーが難解
画像引用元: htt...
UI構築の違い
User Interface

iOS: Interface Builder
WinRT: Blend & XAML
iOS: InterFace Builder

• 機種依存はほぼ、無し
•
•

• 縦長か否か、のみ
ドラッグ&ドロップのみで構成
• コードとのつなぎ込みも可
コーディングと明確に分離
• 中身は解読困難
• Gitでコンフリクトしたら悲...
WinRT: Blend & XAML
• 2つのツールを行き来しながら作業
• Blend

•

• ドラッグ&ドロップでUI構築
• XAML
• C#との繋ぎ込み等は直書き
機種依存へ考慮が必要
• VMと実機で違う

挙動をすることも...
Win8系の解像度について
Logical DPIの存在
Dot per Inch

フルHD(1980 1080)ディスプレイだけど、

ストアアプリは「1366

768」で動くよ!

参考URL
http://www.slideshare...
UI配置の違い

• iOS
• UIViewの下にUI要素を配置
• 基本は絶対位置を指定
• WinRT
• Grid等で画面を区分け
• 相対的に配置
UIの動的生成における違い

• iOS
• コード上で全部書く
• WinRT
• XAML上で枠組みだけ書き、

生成元の変数等はC#で書く
プログラミングの違い
Programming

iOS: Objective-C
WinRT: C#(他にもあるヨ)
iOS: Objective-C
• オブジェクト指向言語
•
•

• C++によって潰されかけた言語
丁寧で厳しい言語
学習コストが高い
• Mac、iOSアプリ以外に使い道がない
• 一部フレームワークの学習コストも高い

(CoreDa...
Obj-Cの例
WinRT: C#
• 簡単で学習コストが低い
•

• 既に習得している人も多い
曖昧な開発も可能
• var(型推論)
• null許容型
•

•

int? j= null + 100; // jはnull

非同期処理がいつの間にか行...
メモリ管理の違い
Memory Management

iOS: ARC
WinRT: GC
iOS: ARC
• Automatic Reference Counting
• MRC(Manual RC)の発展系
1) 元々は手動でメモリ管理
✴

Release、Retain等記載

2) 「Releaseが抜けている」とエラー表示...
ARCの注意点
あくまで
「メモリ管理コードを自動で挿入」
するだけ
特異な書き方をすれば
誤った挿入が行われて

落ちる
WinRT: GC
• Garbage Collection
• 自動でメモリ解放
•

• 今後アクセスし得ない変数を解放
• ずっと保持し続ける処理を書くとリーク
重い
あまり触れた事ないです…
DB管理の違い
Database Management

iOS: Core Data
WinRT: SQLite Wrapper
iOS: CoreData
Object / Relational

• O/R Mapperの1つ
• 面倒なことを代理実行
•
•

• データ保護、メモリ管理など
他クラスとの連携も容易
• テーブルビューとは密接に連携
敷居が高い
CoreDataは鬼門
•
•
•

サンプル読んでも何やっているか分からない
マニュアルも難しい
これだけで本が書けて売れる
• 本を読んでも理解できない
• 本が間違っていることもある
ただし、最近はWeb資料の充実や


Xcode自体の...
WinRT: SQLite
• 拡張(Wrapper)の位置づけ
• 簡単
•

• 導入迄に1時間も要らなそう
データ保護等は自力?
デバッグの違い

• iOS
• 変数の監視期間が短い
•

すぐ解放されてしまう

• WinRT
• 変数の監視期間が長い
• デバッグ中にソースコードを

書き換えられない
その他感想
Other Differences between iOS and Win8
普及度合いによる差

• iOS
• 資料が多い
•

たいていの問題はGoogle等で解決可

• WinRT
• 資料が少ない
•

フォーラムや英語サイトを

彷徨う必要有
iOSとwin8_エンジニア勉強会20131106
iOSとwin8_エンジニア勉強会20131106
Upcoming SlideShare
Loading in...5
×

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

341

Published on

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

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

No Downloads
Views
Total Views
341
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
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 • 資料が少ない • フォーラムや英語サイトを
 彷徨う必要有
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×