Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20180918_エンジニア学生 x リブセンス Drinkup #2
Search
Kaoru Tsutsumishita
September 18, 2018
Programming
0
380
20180918_エンジニア学生 x リブセンス Drinkup #2
https://livesense.connpass.com/event/100620/
の発表資料
Kaoru Tsutsumishita
September 18, 2018
Tweet
Share
More Decks by Kaoru Tsutsumishita
See All by Kaoru Tsutsumishita
Compose Multiplatform for iOS でiOSアプリを作る - DMM.swift#2
roana0229
0
380
DMMオンラインサロンアプリのReactNative→Swift化への道のり
roana0229
0
380
Other Decks in Programming
See All in Programming
testcontainers のススメ
sgash708
1
120
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
910
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
命名をリントする
chiroruxx
1
410
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
6
1.1k
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
たのしいparse.y
ydah
3
120
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
340
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
390
fs2-io を試してたらバグを見つけて直した話
chencmd
0
240
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Why Our Code Smells
bkeepers
PRO
335
57k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Navigating Team Friction
lara
183
15k
Making the Leap to Tech Lead
cromwellryan
133
9k
The Cult of Friendly URLs
andyhume
78
6.1k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Statistics for Hackers
jakevdp
796
220k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Transcript
堤下 薫 2018.09.18 エンジニア学生 x リブセンス Drinkup #2 働きながら趣味で サービスを開発・運用する
堤下薫(呼ばれ方は @つつみん) iOS, Androidエンジニア 最近ReactNativeも触ってます 副業、趣味でも開発していて 個人でいくつかアプリをリリースしています 自己紹介
・どういうアプリを作っているのか ・いつ開発しているのか ・どのように運用しているのか ・個人アプリの制作過程と現在の運用 話すこと
話さないこと ・仕事の内容 ・細かい技術の話 ・Swift, Kotlinでどう書くとか ・学生時代にどんなことしてたか ・活動してたこととか、就活の話とか ・気になる人は懇親会で話しましょう!welcome :)
本題に入る前に...
個人でサービス (アプリ・Webなどなんでも) 作った・作ってる人
個人で作ったサービス をリリースしてる人
作りたいものが いっぱいある
わかる
作り始めは めちゃくちゃ進む
わかる
リリースまで なかなかいかない
ゲームで忙しい わかる
というわけで、本題へ入ります
どんなのつくってるの?
リリースしてるもの ・おいしくなるカメラ - 料理を美味しく撮れるカメラアプリ (iOS) ・QiitaPortable for Qiita - スマホから快適に読もう!
(iOS) ・コミマップ (Android, iOS) アプリ以外 ・android-xml-sorter(IntellJプラグイン) ・spreadsheets-sql(Google Apps Scriptプラグイン)
いつ開発してるの?
・平日 9~10時 → 起床(モチベーションが高いときは朝活開発) 11~20時 → 仕事 21~ 2時 →
副業、趣味開発、ゲーム ・休日 9~10時 → 起床 11~ 2時 → 副業、趣味開発、ゲーム いつもはこんな感じ
・平日 9~10時 → 起床(モチベーションが高いときは朝活開発) 11~20時 → 仕事 21~ 4時 →
ゲーム(副業は最低限やる) ・休日 9~10時 → 起床 11~ 5時 → ゲーム(副業は最低限やる) 大体1週間ぐらい集中してやって、スタートダッシュができたら後はのんびり 新作ゲームが出た時はこんな感じ
細かい開発に使える時間 ・出社帰宅の電車の時間(5~10分ぐらい) Dropbox Paperにメモしたり、技術的に真似できそうなサービス見たり ・情報のインプットは、移動中のTwitterが多い エンジニアの声・反響が早いため、受動的でも情報が入ってくる ・開発合宿(年2回) 8/18,19とつい最近開発合宿して、たまたま2日目に近くでイベントがあり 個人アプリ(コミマップ)を拡張して参加できそうだったので 開発合宿で拡張したものを、そのままイベントに参加して使ってみたりした
個人アプリを運用をするのって 大変じゃない?
・新規に機能を載せていく ・既存の不具合を改修する ・アプリを使ってもらえるように広める ・現在使っている人がどういう使い方をしているのか調べる ・使われていない機能のブラッシュアップをする ・etc... 「運用する」とは
リリースしたもの全てを 運用していく必要ってあるの?
継続的な運用の必要性 運用すると誰が幸せなのか ・需要がある、もっと伸ばせる →継続的に運用する。みんな幸せ ・需要がある、伸ばし方が分からない(モチベーションがない) →ストア公開し続けるための最低限の運用する。使ってる人幸せ ・需要がない、もっと伸ばせる →自分が使うものであれば欲しい機能を載せていく。自分幸せ ・需要がない、伸ばし方が分からない(モチベーションがない) →放置する。使った技術や良かった機能を別のことに活かす
・リリースしたものを必ずメンテする必要はない ・ただ、その時に応じた取捨選択をすることが重要 継続的な運用の必要性
最初のリリースはとりあえずしてみる ・作り込んでも、それが使われるかは分からない ・まずは作り込みすぎず、どういう価値を軸としているのか考えよう (大量の機能が搭載されていることが正義ではない) ・いわゆるMVP(Minimum Viable Product) ・折角作り込むなら、みんな使ってくれる方が嬉しい 生のフィードバックをもらうのはとても楽しい
・おいしくなるカメラ 需要あり、保守(セッション/日: 800) ・QiitaPortable for Qiita 需要なし、放置(セッション/日: 60) ・コミマップ 需要あり、継続して開発(セッション/日: 100,000)コミケ時 ※セッション数はざっくり表記 アプリ以外
・android-xml-sorter(IntellJプラグイン)保守、OSSっぽくPR来たら見る ・spreadsheets-sql(Google Apps Scriptプラグイン) 需要なし、放置 リリースしてるもの(現在の状況)
おいしくなるカメラ MVP:料理を手軽においしそうに撮れる 需要ある?:Yes もっと伸ばせる?:No 広告も載せていて、お金も入ってくる。 最低限リリースし続けていける状態の保守
MVP:Qiitaに投稿されている記事を スマホから楽に見れること 需要ある?:No もっと伸ばせる?:No スライド作ってる最中に気がついた。 自分の投稿が見れなくなってる(ずっとロード中) が、主機能は死んでいないため放置 QiitaPortable for
Qiita
MVP:コミックマーケットを スマホ1つで快適に回れる 需要ある?:Yes もっと伸ばせる?:Yes 自分自身がターゲットユーザ 他にも色々載せたい機能あって、 継続的な運用をしていっている。 コミマップ
コミマップの実績 夏のコミックマーケットでは ・AppleStoreナビゲーション カテゴリ9位 ・togetterにまとめられた ・第三者が宣伝したツイートが8000RT
コミマップ 制作過程と現在の運用
コミックマーケット 知ってる人
コミックマーケット準備会が主催する世界最大の同人誌即売会である。 同人誌即売会とは、同人誌を配布・頒布・販売する集会である。 (wikipediaより引用) 本に限らず、みんなが作ったものを頒布したりして、わいわいするイベント 説明しよう!コミックマーケットとは
・自分がコミックマーケットに参加する人だった ・既存のアプリを見てみたけど、良いのなさそう ・参加した時、目当てのサークルをとりあえずTODOアプリにメモ ・しかし、メモしたサークルが会場のどのあたりにあるのか分かりづらい ・ちょうど大学の開発サークルに入って、Androidを触り初めた時期だった 作り始めたきっかけ
よし、とりあえず勉強に 自分の欲しいアプリを Androidで作ってみよう
解決したい問題 ・自分もコミックマーケットに参加する人だった ・既存のアプリを見てみたけど、良いのなさそう ・参加した時、目当てのサークルをとりあえずTODOアプリにメモ ・しかし、メモしたサークルが会場のどのあたりにあるのか分かりづらい ・ちょうど大学の開発サークルに入って、Androidを触り初めた時期だった
・サークルをリストにすることができる ・リストにしたサークルが会場のどこにあるかわかる MVP
リストは簡単だろうけど 会場の地図への表示はどうしよう…
会場全体
会場の各ホール
全体はなくても移動できるか… 絶対必要なのは各ホールの地図だな
・サークルをリストにすることができる ・リストにしたサークルが会場のどこにあるかわかる ・各ホール地図を表示する ・各ホール地図を拡大縮小、スクロールできる ・地図にサークルを表す目印を置く ・各目印が、登録したどのサークルなのかわかる MVP(地図表示の詳細)
拡大縮小できて、スクロールもできる その地図上に目印を置く…
アプリ内のブラウザに HTMLとして表示すればできそう
HTML、つまり 地図の画像と 各サークルのXY座標が必要
温かみのある手作業で愚直に作る
None
準備ができたので あとはコーディング(省略)して完成
リリース!
・開発者用のコンソールから見れる ・インストール数 ・クラッシュ数 ・レビュー ・Firebaseなどの外部サービス ・リアルタイムのアクティブ数 ・どの画面がよく開かれてる、使われてるなどのイベント計測 ・エゴサーチ ・Twitter 経過観察
None
思ったより使ってくれてる人いる!
よし、iOS版も作ろう (ここからiOS開発もするようになった)
レビューやTwitterなどの ネガポジな意見をどう捉えているのか
・こういうアプリが欲しかった ・お金出しても使いたい ・軽い、見やすい ・◦◦できるともっと良い ・行きたいサークルの場所がすぐわかる ポジティブな意見
・表示されない ・機能が使えない ・前は使えたのに、今回は使えない ネガティブな意見
・基本的にポジティブ・ネガティブどちらの言葉も嬉しい。 ・ポジティブなところから、潜在的な需要があったことがわかる。 ・ネガティブなところから、顧客が求めていたモノの欠片が見える。 フィードバックや意見の捉え方
・ストアのレビューは基本的に全て返信する → 定型文でも良いので、開発者がアクティブであることを明示 ・ただ、コミケを過ぎて日がたってからのレビューは次回コミケ時に返信する → レビューに返信することでメールが来るため、存在を思い出させる ・〇〇機能が欲しい → そのまま実装しようと思うことは殆ど無い。
あくまで1つの意見として「アドバイスありがとうございます」と返信する 感謝の声、フィードバックや意見に対する返信
・マップの元データの作り方が手作業なので、拡張し辛い ・無償提供が厳しくなってきている 厳密にすると、維持するための時間・モチベーションが厳しくなってきた 現状どんな問題を抱えているのか
・もともと自分のために作ったもので、 ニーズがあるかどうかすらわからなかった ・有償だと触ってくれる人が更に減る ・維持費はかからないように技術選択している なぜ現在は無償で出しているのか
それをどう改善しようと考えているのか ・マップの元データをスプレッドシートから生成する。 「スプレッドシートを作ったらマップになる」ぐらいの作りやすさがベスト ・無償→フリーミアム 「お金を出しても使いたい」というレビューの声もあるが レビューでわざわざそこまで言ってくれる人は、利用者の中でごく一部 有料だと試しに触ってみることなく、 本来のアプリの良さに気付けないユーザが増えると予想
それをどう改善しようと考えているのか ・マップの元データをスプレッドシートから生成する。 「スプレッドシートを作ったらマップになる」ぐらいの作りやすさがベスト = 初期開発で作り込まなかった部分の作り込み ・無償→フリーミアム 「お金を出しても使いたい」というレビューの声もあるが レビューでわざわざそこまで言ってくれる人は、利用者の中でごく一部 有料だと試しに触ってみることなく、 本来のアプリの良さに気付けないユーザが増えると予想
それをどう改善しようと考えているのか ・マップの元データをスプレッドシートから生成する。 「スプレッドシートを作ったらマップになる」ぐらいの作りやすさがベスト = 初期開発で作り込まなかった部分の作り込み ・無償→フリーミアム 「お金を出しても使いたい」というレビューの声もあるが レビューでわざわざそこまで言ってくれる人は、利用者の中でごく一部 有料だと試しに触ってみることなく、 本来のアプリの良さに気付けないユーザが増えると予想
= 開発を維持するための資金調達(モチベーション)
まとめ ・1,2日や細かい時間を見つける or 作りながら開発できる。 ・限られた時間の中で、良いものを作っていくために 小さく小さく作ってリリース、運用していく・いける。 ・リリースしたものを全て運用していく必要はない。 ・インターネット上には様々な意見を持っている人がいて フィードバックをもらえるが、鵜呑みにしないように気を付ける。 ・モチベーションは技術・お金など何でも良いので見つける。