SlideShare a Scribd company logo
1 of 7
Download to read offline
XMLで取得したデータを
表示してみよう
∼実務でもお目にかかるであろう処理をつくる∼
自己紹介
酒井文也(さかい ふみや)
今までの仕事履歴(本業)
石川県金沢市生まれ・東京(大塚)住まいの30歳
本業は某口コミサイトのプログラマ ※Railsを使っています
26歳∼30歳:PHP / Rubyプログラマ
23歳∼25歳:Webデザイナー兼ディレクター
Objective-C歴:3ヶ月くらい Swift歴:50日
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向けと食べ物系コンテンツのお仕事が多い…
→ やっとアプリ1個申請までこぎつけた。。
XMLデータを読み込むサンプル
なんで自分でつくってみたいと思ったの?
参考にしたもの
これって実務でもよく使う!
But…
(インスパイアされた) http://eure.jp/blog/swift_rss_kim/
①ポピュラーそうな処理なのに気の利
 いたサンプルが当時はまだ少ない...
やっぱりOptional型のハンドリングには結構悩まされた….
まあ性懲りもなくまたこうなった
どうにかこうにか自分で作った
Swiftでの開発:3days
②JSONの同様なサンプルは結構色々
 あるのに...
③画像の取得とかやりたいと感じる方
 はいると思うんだよな…
 (ここが特に欲しかった)
(参考にしたサンプル) http://blog.andgenie.jp/articles/291
今回のサンプルはこちらから!
こちらのページからダウンロードをどうぞ
解説記事
https://github.com/fumiyasac/XMLFeedSample/
・上記ページの「Download ZIP」よりどうぞ!
①事前準備編 http://blog.just1factory.net/programming/229
・こちらは今後も更新は随時行う予定です。
※相当ボリュームがあったので、2本立てにしてあります。
②処理解説編 http://blog.just1factory.net/programming/243
※今回は②処理解説編を元に解説を行います。
※Optional型についてはこちらも参考にして頂ければ幸いです。
http://www.slideshare.net/fumiyasakai37/optional-43391115
XML解析処理のイメージ説明
XMLデータの構造 item要素の中にさらに要素がある
データの解析順
1番目: okashinotoriko
case1) 要素名 = item: UITableView表示用の入れ物を用意
case2) 要素名 = name・url・price・maker・url・image:値 or nilが入る
case3) 要素名 = name・url・price・maker・url・image以外:何もなし
※画面はこんな感じ
2番目: item
3番目: id
4番目: name
5番目: kana
6番目: maker
7番目: price
8番目: type
以下おわりまで….
ハマりやすいポイントはここ
Optional型のハンドリング(UITableViewの表示)
画像に関する非同期通信を使った取得処理
NSXMLParserに関する部分
 ①まだまだJSONに対応していないAPIもある
 ・結構対応は進んでいるけどXMLのみのものもある
 → 使いたいAPIの仕様はしっかりと確認を!
 ②XMLの要素が深い or 量が多い場合はライブラリも検討
 ・量が多いと解析処理の分岐が多くなる
 → コードをシンプルにできるものがあれば活用を!
XMLの要素を解析する処理のイメージ
質疑応答
※なんでもOKです!(参考書籍や勉強方法等も含む)
プライベートなことでも可能な限りお答えします。

More Related Content

More from Fumiya Sakai

既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
Fumiya Sakai
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
 

More from Fumiya Sakai (20)

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

Xmlで取得したデータを表示してみよう