SlideShare a Scribd company logo
Image:https://flic.kr/p/5959u3
ノンゲーム系スマホアプリ制作
First Step
ノンゲーム系スマホアプリ勉強会 07/23
Munesada Yohei
@yoheiMune
宗定 洋平
むねさだ ようへい
@yoheiMune
ハンドルネーム
@渋谷にある緑のチャラくない会社
フロントエンドエンジニア
ブログもやってます → http://www.yoheim.net/
はじまり
Introduction
Image:
今日お話させて頂くことは
スマホアプリの作り方
です
スマホアプリの作り人のレベルを分類すると
1. やりたいと思っている人
2. やりたいと言っている人
3. 実際に行動に移す人
4. 行動に移して結果を出す人
5. 行動を続けて結果を出し続ける人
6. 結果が世間に広く受け入れられている人
このセッションの対象者は
1. やりたいと思っている人
2. やりたいと言っている人
3. 実際に行動に移す人
4.
5.
6.
このセッションのゴールは
1.
2.
3.
4. 行動に移して結果を出す人
5. 行動を続けて結果を出し続ける人
6. 結果が世間に広く受け入れられている人
ちなみに後続のセッションでは  きっと
NewsPicksのUIデザイン
「あすけん」が受ける3つのポイント
RoomClipにおけるHTTP通信手法
といった、本セッションの次のステップ
の話が聞けるはず!!
違ったらごめんなさい(>.<。。。
• 導入
• スマホアプリの作り方
• 終わりに
Agenda
How to create apps
スマホアプリの作り方
Image:
スマホアプリ制作の6つのステップ
企画と画面レイアウト
・何を作りますか?
・どんな機能がありますか?
・どんな使い勝手ですか?
・何を解決するものですか?
紙やEvernoteなどにドンドンと書き出していきます。
やりたいことをすべて吐き出すまで続けます。
企画・画面レイアウト
困難#1
作りたいものが・・・思いつかない・・・
この観点はどうですか?
・日常困っていることを解決する何か
・暇つぶしに使う何か
・既存のアプリを真似してみる
・既存のアプリを掛け合わせてみる
・など
・日常困っていることを解決する何か
・暇つぶしに使う何か
・既存のアプリを真似してみる
・既存のアプリを掛け合わせてみる
・など
ポイント#1
最初はしょぼくて当たり前!!
作り始める1歩を踏み出すことが大切
今回はLivedoor Reader
のiPhoneアプリを作ります
参考:Livedoor Readerとは
いわゆるひとつのRSSリーダーです
Feedlyのお友達です
やりたいことを書き出したらこんな感じでした
企画・画面レイアウト
企画内容を画面にプロットします
← 広告を入れたい
← フィードのリスト表示
← 未読件数を表示
← 未読/既読/Pinの表示切替
← フィードのURLも表示
← 読み込み状況の表示
ポイント#2
①画面レイアウトは手書きがオススメ!
②内容まで具体的に書くと良い!
実現可能性のチェック
・Livedoor Readerって外部から使えるの?
・SNSシェアしたいけどどうやるの?
・データを永続化したいけどやったことないな
・etc・・・
実現できるのかを確認します
ない・・・Livedoor Readerの公式APIは・・・
困難#2
GoogleさんとかChromeさんで調べました
①Livedoor Readerのページを開いて
③APIの内容を確認していきます
・プロトコルとメソッド
・URL
・送信内容
・レスポンス内容
・認証方法(CookieやHTTPヘッダ)
・など
②フィードをクリック
そんなこんなで
実現できる方法を見つけていきます
デザイン
デザインなんてしたことないよ・・・
困難#3
画面デザインってExcelでやるんじゃないの。。。
引用:
SIer時代は、Excelさまさまでした
Image:https://
Design so Important
ポイント#3
1. Apple標準のUIを使う
2. 「RSS アプリ デザイン」でググる
3. 「アイコン 無料」でググる
4. GIMP2とかPhotoshopを使う
5. 知り合いのデザイナーに頼む
なんとか乗り切ってください!
今回はこんなデザインにしました
etc
プログラム設計
プログラム設計って??
ポイント#4
プログラム設計を通して
コードの責任分担を決めていきます
プログラム設計の善し悪しで
コードの書きやすさが変わります!!
今回はこんな感じにしてみました
View
/ViewController
Database
Livedoor Reader
DBManager
SyncManager
Service
今回はこんな感じにしてみました
View
/ViewController
Database
Livedoor Reader
DBManager
SyncManager
Service
APIを扱う
今回はこんな感じにしてみました
View
/ViewController
Database
Livedoor Reader
DBManager
SyncManager
Service
永続化を扱う
今回はこんな感じにしてみました
View
/ViewController
Database
Livedoor Reader
DBManager
SyncManager
Service
高レベルAPI
今回はこんな感じにしてみました
View
/ViewController
Database
Livedoor Reader
DBManager
SyncManager
Service
表示を扱う
コーディング
ひたすらコーディングします!
フィードを読み込んだ時に、スクロールがカクつくぞ
カクつく...
フィードを読み込むとスクロールがカクつく
【Problem】
フィードを読み込んでDBに保存するとき
UIが少しだけフリーズしてしまう
【Resolution】
UIの表示処理とDB保存は
別スレッドで行うようにする
急にアプリがクラッシュしたり
処理が止まったりするようになったぞ・・・
クラッシュする...
処理が意図せず停止する
【Problem】
DBに複数のスレッドからアクセスすることで
クラッシュしたりデッドロックが発生しているようだ・・。
【Resolution】
CoreDataはスレッドごとに
NSManagedObjectContextを用意する。
Database
MultiThread Access
問題いっぱい出て大変だー。
SNSとかでアウトプットできる機能を
全部作るの面倒だなー。
めんどくなってきた...
作るのが面倒くさくなってきた
【Problem】
Twitter,Facebook,Safari,Mail,
Evernote,・・・etc
作るの面倒になってきたぞーw
【Resolution】
諦めずにやることが大切
ポイント#5
妥協するもしないも自分次第!!
アプリの品質にはできるだけ妥協しない
リリース
リリース素材を作ります
**************** リリースノート ver.1.0 ****************
FastLDRは、Livedoor Readerクライアントで、たくさんの記
ションです。特に未読記事をさくさくと読むことを重視して設計
便利な機能がたくさん備わっています。
!
【主な機能】
■オフライン機能
・フィードを一度ロードすると、オフラインでも閲覧することが
・・・
********* リリースノート ver.1.0 (英語ver)****************
FastLDR is a one of Livedoor Reader Client, and provides
comfortably. We create this for reading many item espec
functions, for example offline cache, and preloading web
!
【Features】
■It works at Offline environment
Once you download items, you can read them at offline, e
・・・
iPhoneアプリの場合は
iTunes Connectでアプリ審査の準備をし
XCODEからアプリをアップロードします
審査が終わるまでじっと待ちます・・・
来る日も来る日も待ちます・・・
審査が終わった・・・
Image:https://flic.kr/p/5ZwcHe
でたぞー!!!
復習:6つのステップ
Most Important Thing
最も大切なこと
Image:https://
いまはこの状態
4. 行動に移して結果を出す人
5. 行動を続けて結果を出し続ける人
6. 結果が世間に広く受け入れられている人
自分の思いを
世界に発信できる状態
一番大切なことそれは
モチベーション
だと思っています
将来どのようになりたいですか?
私は
世界史に名を残すサービスを
創りたい!!
Thank you
http://github.com/yoheiMune
http://www.yoheim.net
http://twitter.com/yoheiMune

More Related Content

Viewers also liked

Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceupYohei Munesada
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろうCROOZ, inc.
 
MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1
Takahiro Inoue
 
Object Oriented CSS
Object Oriented CSSObject Oriented CSS
Object Oriented CSS
Nicole Sullivan
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo dbYuji Isobe
 
データドリブン経営のメトリクス分析 AARRR!モデルの紹介
データドリブン経営のメトリクス分析 AARRR!モデルの紹介データドリブン経営のメトリクス分析 AARRR!モデルの紹介
データドリブン経営のメトリクス分析 AARRR!モデルの紹介
pLucky
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
Tokoroten Nakayama
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
偉格 高
 
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニングPython入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
Toshiaki Sasaki
 
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
 

Viewers also liked (13)

Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろう
 
MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1
 
Object Oriented CSS
Object Oriented CSSObject Oriented CSS
Object Oriented CSS
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
 
データドリブン経営のメトリクス分析 AARRR!モデルの紹介
データドリブン経営のメトリクス分析 AARRR!モデルの紹介データドリブン経営のメトリクス分析 AARRR!モデルの紹介
データドリブン経営のメトリクス分析 AARRR!モデルの紹介
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
 
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニングPython入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
 

Similar to ノンゲーム系スマホアプリ制作 First Step

Magimon 20120426(公演用) dango
Magimon 20120426(公演用) dangoMagimon 20120426(公演用) dango
Magimon 20120426(公演用) dangoHiromitsu Ishimori
 
Crunchtimer会社案内
Crunchtimer会社案内Crunchtimer会社案内
Crunchtimer会社案内
Yuya Miyamoto
 
MobProgramming at ヴァル研究所 - 紹介
MobProgramming at ヴァル研究所 - 紹介MobProgramming at ヴァル研究所 - 紹介
MobProgramming at ヴァル研究所 - 紹介
Toshiyuki Ando
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
Osamu Ise
 
知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話
FujishiroRumi
 
Itca yammer提案110615
Itca yammer提案110615Itca yammer提案110615
Itca yammer提案110615
伸夫 森本
 
「プログラム名を指定して実行」という名のランチャーアプリ
「プログラム名を指定して実行」という名のランチャーアプリ「プログラム名を指定して実行」という名のランチャーアプリ
「プログラム名を指定して実行」という名のランチャーアプリ
tomohiroimaizumi
 
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライトモブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
Toshiyuki Ando
 
Do not-install-software
Do not-install-softwareDo not-install-software
Do not-install-software
shinobu tsutsui
 
20140618 教育・知育アプリのつくりかた
20140618 教育・知育アプリのつくりかた20140618 教育・知育アプリのつくりかた
20140618 教育・知育アプリのつくりかた
Mori Tetsuya
 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
Kuniyoshi Takenaka
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
Kosuke Ogawa
 
カンファレンス販売店教育施策配布用
カンファレンス販売店教育施策配布用カンファレンス販売店教育施策配布用
カンファレンス販売店教育施策配布用Appliya Tokyo
 
How to make gear demo videos(機材動画のつくりかた)
How to make gear demo videos(機材動画のつくりかた)How to make gear demo videos(機材動画のつくりかた)
How to make gear demo videos(機材動画のつくりかた)
MasakiTakada1
 
ソーシャルワークショップ110610
ソーシャルワークショップ110610ソーシャルワークショップ110610
ソーシャルワークショップ110610
伸夫 森本
 
Mob Programming ってなんですか?
Mob Programming ってなんですか?Mob Programming ってなんですか?
Mob Programming ってなんですか?
Toshiyuki Ando
 
ふりかえりワークショップ@オープンラボ備後
ふりかえりワークショップ@オープンラボ備後ふりかえりワークショップ@オープンラボ備後
ふりかえりワークショップ@オープンラボ備後Shinsuke Abe
 
A07  角田研究室7 板垣百華
A07  角田研究室7 板垣百華A07  角田研究室7 板垣百華
A07  角田研究室7 板垣百華
aomorisix
 
今時の試験やさんの気持ち
今時の試験やさんの気持ち今時の試験やさんの気持ち
今時の試験やさんの気持ち
高見 知英
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロ
Kei Nakazawa
 

Similar to ノンゲーム系スマホアプリ制作 First Step (20)

Magimon 20120426(公演用) dango
Magimon 20120426(公演用) dangoMagimon 20120426(公演用) dango
Magimon 20120426(公演用) dango
 
Crunchtimer会社案内
Crunchtimer会社案内Crunchtimer会社案内
Crunchtimer会社案内
 
MobProgramming at ヴァル研究所 - 紹介
MobProgramming at ヴァル研究所 - 紹介MobProgramming at ヴァル研究所 - 紹介
MobProgramming at ヴァル研究所 - 紹介
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
 
知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話
 
Itca yammer提案110615
Itca yammer提案110615Itca yammer提案110615
Itca yammer提案110615
 
「プログラム名を指定して実行」という名のランチャーアプリ
「プログラム名を指定して実行」という名のランチャーアプリ「プログラム名を指定して実行」という名のランチャーアプリ
「プログラム名を指定して実行」という名のランチャーアプリ
 
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライトモブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
 
Do not-install-software
Do not-install-softwareDo not-install-software
Do not-install-software
 
20140618 教育・知育アプリのつくりかた
20140618 教育・知育アプリのつくりかた20140618 教育・知育アプリのつくりかた
20140618 教育・知育アプリのつくりかた
 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
Swiftビギナーズ勉強会 第9回 BluePrint/BluePrintViewerで作るアプリモックアップ 
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
カンファレンス販売店教育施策配布用
カンファレンス販売店教育施策配布用カンファレンス販売店教育施策配布用
カンファレンス販売店教育施策配布用
 
How to make gear demo videos(機材動画のつくりかた)
How to make gear demo videos(機材動画のつくりかた)How to make gear demo videos(機材動画のつくりかた)
How to make gear demo videos(機材動画のつくりかた)
 
ソーシャルワークショップ110610
ソーシャルワークショップ110610ソーシャルワークショップ110610
ソーシャルワークショップ110610
 
Mob Programming ってなんですか?
Mob Programming ってなんですか?Mob Programming ってなんですか?
Mob Programming ってなんですか?
 
ふりかえりワークショップ@オープンラボ備後
ふりかえりワークショップ@オープンラボ備後ふりかえりワークショップ@オープンラボ備後
ふりかえりワークショップ@オープンラボ備後
 
A07  角田研究室7 板垣百華
A07  角田研究室7 板垣百華A07  角田研究室7 板垣百華
A07  角田研究室7 板垣百華
 
今時の試験やさんの気持ち
今時の試験やさんの気持ち今時の試験やさんの気持ち
今時の試験やさんの気持ち
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロ
 

ノンゲーム系スマホアプリ制作 First Step