SlideShare a Scribd company logo
1 of 30
Download to read offline
柳原 光里 

Github: @ave-hikari
Qiita: @ave
Facebook: @hikari.x.yanagihara
swiftで初アプリリリース
してみて振り返り
自己紹介
• 新卒エンジニア2年目 Webアプリ開発が主
• 好きなもの 漫画、旅行、西洋画、服、デザイ
ン、三国志、飲酒
• 一番好きな作品 らんま1/2
• 使うのは断然Android派!!!
今はもっぱらこれ→
アプリ歴
• 今年4月~9月 Objective-cで初iOS開発(仕事)
• 7月あたりから Swiftで自作アプリ開発中
ECアプリ。先日ようやくリリース!
先日ようやく初号機リリース
初めてAppStoreにリリースした
swiftで書いた自作アプリ
「PictMaker」
この先機能追加もしていくので
落としてもらえると超嬉しいです!
※辛辣なレビューは直接お願いします。
本日の内容
初めて個人でアプリ申請からリリースまでの作業を
やってみて発見したこと感じたこと、
swiftで初めて書いてみて苦労した点などなど
振り返り紹介します
swiftで個人アプリ開発
開始
6月下旬~7月上旬
設計→製造→リリースの工程を
自己管理して進めるためツール導入
• Backlog立ててプロジェクトとして進める

Git使えるし便利
• Cacoo で画面遷移図とか作ってみる

→すぐ飽きて放置…
• どういうアプリ作るか・大体のスケジュールを決定
swiftで個人アプリ開発
7月中旬
開発開始!
・・・そもそも
Obj-cでの開発経験は
あったのに(7月時点)
なぜ
swiftでやろうと思ったか?
・上司の提案 り
・周囲の人間の中で
swiftならこの人!的
立ち位置になりたいという野望
(swiftでならシェアは奪える・・かも・・)
試しに拾ったソースなど読み始めてみた所
「swiftの方がなんか書き易いっぽい」
「[]とかつけなくていいし
入力補完ないとやってけない
Obj-cの文法より楽そう」
「最新の言語を使うのやっぱイケてる気する
(刷り込み)」
等と思い始め、本格的に書き始める
swiftで個人アプリ開発
開始から
大体1.5ヶ月(8月初旬)
早くもObj-cに戻りたくなる
• 変数指定時に型指定しなくてもいいくせに

型のチェックは厳しいってどういうことなの・・・
• []や;の記述不要とかブロック記法がアッサリしている等

Obj-cで覚えた「何となく物々しい書き方」(所感)が

なくなってしまったことに一抹の悲しさを感じる
あれ・・・なんか思ったよりswift移行できない・・・
始めてみて大体ぶつかるOptional
• !を多用した結果→落ちまくる
• 慣れてきても出しちゃう unexpectedly found
nil while unwrapping an Optional value

闇雲はダメ、ひとつずつoptional宣言してwrap
していこう・・・
swiftで個人アプリ開発
8月中旬
・・・なんか慣れてきたぞ!!
• .h(ヘッダーファイル)ないっていい・・
• 型指定するもよし、しないもよし
• 行数がやはり減る、簡潔

しかし
モチベが保つのも束の間
職場でObj-cをいじりまくることで
家でswiftやる気が失せていく
• AppStore申請に向け絶賛高稼働



・・・言い訳して自分の方は後回しorz
swiftで個人アプリ開発
9月中旬~終盤
実にこの期間で
2割の状態から8割方作り終える
スケジュールの自己管理とは何だったのか
・・まあ、ここまできたら後は楽
でしょ
デザイン検討&当て込み、きつい
• FireAlpaca GIMP 使い辛い(PhotoShopは知らない)
• 作ったものをアプリに当ててみては修正する
• どこまでこだわるべきかもう見えない

正直この工程をめっちゃ嘗めてました
いざ申請、reject らいまくる
• 「descriptionもっと書け」
• 「iPadで動かない」←テスト不足
• 特急チケット(?)使うも、効果現れず
• 通るまで一月ちょいかかった気が

swiftで個人アプリ開発
ついに AppStoreに
並ぶ
なぜか落ちる
アーカイブビルド作成時&ソースアップロード時に落ち
てなかったよ?!
あれ・・でもローカルでも落ちてる・・
→インスタンスで弱参照(weak)を指定していたのが原因
メモリリーク・循環参照についてちゃんと考えていなかっ
た
思わぬ落とし穴が発覚し、修正&早くもバージョンアップ
そんなこんなで無事、正式
リリース完了
反省点
• 書いて問題なく動いてる箇所でも、言語仕様をしっかり
把握した上で使う
• 非デザイナーがデザイン周りも一からあれこれやろうと
すると、時間がかかる
• メモリリークと向き合う
• しょうもないリジェクトを らわない
• 自分で立てたスケジュールは遵守しろ(早くリリースし
ろ)

素直な感想
色々助けを借りながらも
ほぼ自分一人で作ったアプリが
ストアに並んでるのは感慨深いです
また次に向けて考えるのも超楽しいです
Android版もリリースしたいので

そっちも勉強しよう!
おまけ
開発・申請時にお世話になったサイト等
• Screenshot Builder

詳細画面のキャプ画作成が る
• MakeAppIcon

各デバイス用のアイコン作成が る
• Qiita

説明不要
• 今のアプリ・Webデザインのトレンドは

こんなだよ!的なサイト

素晴らしい時代です!!!
@キルラジェネレータ
   http://wakufactory.jp/html5/webfont/killla.html

More Related Content

What's hot

WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際Hiroyuki Yamaoka
 
自動化について
自動化について自動化について
自動化についてYuma Iwasaki
 
自分のアプリをつくろう
自分のアプリをつくろう自分のアプリをつくろう
自分のアプリをつくろうSatoru Ishikawa
 
時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくるFumiya Sakai
 
おばかアプリ勉強会資料 シグマコンサルティング
おばかアプリ勉強会資料 シグマコンサルティングおばかアプリ勉強会資料 シグマコンサルティング
おばかアプリ勉強会資料 シグマコンサルティングatmarkit
 
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)Fumiya Sakai
 
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTipsUIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTipsFumiya Sakai
 
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)Fumiya Sakai
 
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)Fumiya Sakai
 
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)Fumiya Sakai
 
女性エンジニアの1週間
女性エンジニアの1週間女性エンジニアの1週間
女性エンジニアの1週間x1 ichi
 
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Fumiya Sakai
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントFumiya Sakai
 
15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況Kei Nakazawa
 
プロ生@福岡20130316
プロ生@福岡20130316プロ生@福岡20130316
プロ生@福岡20130316ima sen
 
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】Meyco U
 
開発の道具についてのお話 LOUPE Study #15
開発の道具についてのお話 LOUPE Study #15開発の道具についてのお話 LOUPE Study #15
開発の道具についてのお話 LOUPE Study #15Takuya Mukohira
 
自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見Fumiya Sakai
 

What's hot (20)

WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際
 
自動化について
自動化について自動化について
自動化について
 
自分のアプリをつくろう
自分のアプリをつくろう自分のアプリをつくろう
自分のアプリをつくろう
 
時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる
 
20150514 android
20150514 android20150514 android
20150514 android
 
おばかアプリ勉強会資料 シグマコンサルティング
おばかアプリ勉強会資料 シグマコンサルティングおばかアプリ勉強会資料 シグマコンサルティング
おばかアプリ勉強会資料 シグマコンサルティング
 
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
 
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTipsUIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
 
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)
 
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
 
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)
 
女性エンジニアの1週間
女性エンジニアの1週間女性エンジニアの1週間
女性エンジニアの1週間
 
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
 
関数型Swift
関数型Swift関数型Swift
関数型Swift
 
15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況
 
プロ生@福岡20130316
プロ生@福岡20130316プロ生@福岡20130316
プロ生@福岡20130316
 
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
 
開発の道具についてのお話 LOUPE Study #15
開発の道具についてのお話 LOUPE Study #15開発の道具についてのお話 LOUPE Study #15
開発の道具についてのお話 LOUPE Study #15
 
自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見
 

Similar to Swiftvol.1

Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話Makoto Inomata
 
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発Fumiya Sakai
 
第1回プログラミング大学in福岡
第1回プログラミング大学in福岡第1回プログラミング大学in福岡
第1回プログラミング大学in福岡Ryu Yamashita
 
C++でiOSアプリ
C++でiOSアプリC++でiOSアプリ
C++でiOSアプリ5mingame2
 
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返りFumiya Sakai
 
iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話Hideki Abe
 
TBMU#28 ブログのトラブル・困ったを解決
TBMU#28 ブログのトラブル・困ったを解決TBMU#28 ブログのトラブル・困ったを解決
TBMU#28 ブログのトラブル・困ったを解決Tomaki Maeda
 
iOS開発で使えるオープンソースのライブラリやサービスの紹介
iOS開発で使えるオープンソースのライブラリやサービスの紹介iOS開発で使えるオープンソースのライブラリやサービスの紹介
iOS開発で使えるオープンソースのライブラリやサービスの紹介asakahara
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa章平 福井
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!Kenichi Yoshida
 
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-EdoSwiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-EdoMegumi Otani(Czenhe)
 
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてiOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてFumiya Sakai
 
スマートフォンアプリ開発におけるディレクション
スマートフォンアプリ開発におけるディレクションスマートフォンアプリ開発におけるディレクション
スマートフォンアプリ開発におけるディレクションGIG inc.
 
Appmethodで何か作ってみる
Appmethodで何か作ってみるAppmethodで何か作ってみる
Appmethodで何か作ってみるYou&I
 
I understand completely line api
I understand completely line apiI understand completely line api
I understand completely line apiTakaoUeda2
 

Similar to Swiftvol.1 (20)

Hachioji.pm 13
Hachioji.pm 13Hachioji.pm 13
Hachioji.pm 13
 
SwiftでSNS投稿を行う
SwiftでSNS投稿を行うSwiftでSNS投稿を行う
SwiftでSNS投稿を行う
 
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
 
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発
 
第1回プログラミング大学in福岡
第1回プログラミング大学in福岡第1回プログラミング大学in福岡
第1回プログラミング大学in福岡
 
C++でiOSアプリ
C++でiOSアプリC++でiOSアプリ
C++でiOSアプリ
 
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
 
iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話
 
Swift instagram viewer
Swift instagram viewerSwift instagram viewer
Swift instagram viewer
 
TBMU#28 ブログのトラブル・困ったを解決
TBMU#28 ブログのトラブル・困ったを解決TBMU#28 ブログのトラブル・困ったを解決
TBMU#28 ブログのトラブル・困ったを解決
 
iOS開発で使えるオープンソースのライブラリやサービスの紹介
iOS開発で使えるオープンソースのライブラリやサービスの紹介iOS開発で使えるオープンソースのライブラリやサービスの紹介
iOS開発で使えるオープンソースのライブラリやサービスの紹介
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-EdoSwiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-Edo
 
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてiOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
スマートフォンアプリ開発におけるディレクション
スマートフォンアプリ開発におけるディレクションスマートフォンアプリ開発におけるディレクション
スマートフォンアプリ開発におけるディレクション
 
Appmethodで何か作ってみる
Appmethodで何か作ってみるAppmethodで何か作ってみる
Appmethodで何か作ってみる
 
I understand completely line api
I understand completely line apiI understand completely line api
I understand completely line api
 

Swiftvol.1