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
42 best practices for Symfony, a decade later
tucksaun
1
180
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
330
103 Early Hints
sugi_0000
1
230
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
470
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
useSyncExternalStoreを使いまくる
ssssota
6
1k
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
The Language of Interfaces
destraynor
154
24k
Faster Mobile Websites
deanohume
305
30k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
4 Signs Your Business is Dying
shpigford
181
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Rails Girls Zürich Keynote
gr2m
94
13k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Making Projects Easy
brettharned
116
5.9k
Documentation Writing (for coders)
carmenintech
66
4.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
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 作りながら開発できる。 ・限られた時間の中で、良いものを作っていくために 小さく小さく作ってリリース、運用していく・いける。 ・リリースしたものを全て運用していく必要はない。 ・インターネット上には様々な意見を持っている人がいて フィードバックをもらえるが、鵜呑みにしないように気を付ける。 ・モチベーションは技術・お金など何でも良いので見つける。