SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
「青空読手」の作り方
 2012/12/21(金)@InfoTalk
         樋口 祐紀
 (higuchi_yuki@probsc.jp)
突然ですがクイズです
• Gmail / Google+ / Twitter を利用
  し、任意の文字列を送信するAndroid
  アプリを作るのに必要な時間は?
  A. 3分
  B. 3時間
  C. 3日
  D. Androidでは無理... だけど...
    3秒でできるよ。そう、iPhoneならね          2
本日の内容
• 青空読手のご紹介
• 「青空読手」を作ろうと思った、
           たった3つの理由
• Kindle/Playブックスとの比較
• どうやって作ってるの?
• インテントとは?
• マネタイズ方法
                        3
自己紹介
自己紹介
名前: 樋口 祐紀
  (ひぐち ゆうき)
年齢: 32歳
  (1980/02/08)
出身:S市杜王町
所属: (株)PRO&BSC


                 5
Androidとの関わりは...




                   6
青空読手のご紹介
青空読手のご紹介①
作者一覧やランキングから選択   文庫の表示   もちろんしおり機能も




                                      8
青空読手のご紹介②
               サイズ: 極大 + 太さ: 極太   サイズ: 極小 + 太さ: 極細

文字のサイズと太さの指定




                                                     9
青空読手のご紹介③


               SDカードや本体内の
              テキストの読み込みも可能

  横向き表示にも対応




                             10
mobile ASCII vol.5に掲載!
               2011/7/29発行




                             11
PLUTINUM Prize
  頂きました!




                 12
ディベロッパーコンソール




                        端末                                     国
1 Samsung Galaxy S                7.21 %(8,940)    1 日本        97.74 %(121,107)
2 Sharp IS03                      6.08 %(7,535)    2 中国            0.43 % (539)
3 Samsung Galaxy Tab              4.52 %(5,596)    3 アメリカ合衆国       0.43 % (529)
4 Samsung Galaxy S2               4.35 % (5,393)   4 大韓民国          0.25 % (312)
5 Fujitsu Toshiba REGZA Phone     4.34 % (5,376)   5 台湾            0.25 % (304)
6 SEMC Xperia Arco                3.34 % (4,141)   6 香港            0.10 % (121)
7 SEMC Xperia Arc                 2.85 % (3,536)   7 タイ            0.08 % (104)
8 SEMC Xperia X10                 2.28 % (2,824)   8 オーストラリア        0.07 % (91)
9 SEMC Xperia Arco HD             2.21 % (2,733)   9 イギリス           0.07 % (90)
10 その他                          62.82 % (77,838)   10 その他          0.58 % (715)   13
「青空読手」を作ろうと
思った、たった3つの理由
理由 その①
    • そこに Xperia があったから
         – 大のソニエリ好き x 2010/04/01 Xperia 発売




【出典】 http://keitaiall.jp/premini.html / http://keitaiall.jp/Xperia.html   15
理由 その②
• A3 の開催
                      すべての応募作品の中で最も優れ
              大賞      た作品 (1作品、トロフィー+賞金
                      100万円)
              優秀賞     大賞に準じた優秀な作品 (2作品)
              技術賞     技術的に優れた作品 (1作品)
              ルック&    ユーザーインタフェースや操作性に優
              フィール賞   れた作品 (1作品)
                      学生が開発した作品で優れたもの
              学生賞
                      (1作品)
              グローバル   ワールドワイドでの展開が期待でき
              賞       る作品で優れたもの (1作品)


 – 賞金100万円!安西先生、お金が欲しいです・・・
                                        16
理由 その③
    • 少年少女の貴重な時間がゲームに…
        – 2009/10 「怪盗ロワイヤル」が運用開始




        – 通学時間等に有意義な時間を過ごしてほしい!!
        – と思いながら、ゲームの広告でお世話になってます ;-)
【出典】 http://getnews.jp/archives/156602   17
「青空読手」のリリース
                                ver. 0.9 - 2010/05/13リリース
                                機能: 明朝体フォントのダウンロード
                                      ランキング20位までのリンクを表示
                                      ぬるぬるめくる感覚でページおくり
                                      文字サイズの変更




ver. 0.9.9.5 - 2012/12/15リリース
      初版から 35 回目のアップデート
           2年半で30万ダウンロード                                18
継続のモチベーションはユーザの声


 Googleユーザー - 2012/11/11 - バージョン 0.9.9.4
 ★★★★★ 更新で使えるようになりました!(タブレットUIでは使えませんね)
 0.9.9.3ではタップしてもメニューにアクセスできなかったのですが 自動更新後に試してみたら、
 0.9.9.4で使えるようになりました。対応ありがとうございます。アンインストールしなくて良かった(笑)
 Googleユーザー - 2012/11/11 - バージョン 0.9.9.4
 ★★★☆☆ 仕様か不具合か?!
 アップデートすると、今まで読んだ履歴が全てなくなるのと、フォントをダウンロードして使用すると、表示
 されない漢字などが出てくる(標準のフォントではそういうことはないようだ)のが改善されると嬉しい。
 Googleユーザー - 2012/11/10 - バージョン 0.9.9.4
 ★★☆☆☆ 不具合!
 キャシュ削除するとアプリダウンする…改善願います!F-10D
 Googleユーザー - 2012/08/30 - バージョン 0.9.9.2
 ★★★★★ すばらしい
 下手な有料アプリよりも調子がいいですね。 個人的な欲を言うなら横書き機能も欲しいですが、テキ
 ストファイルが読み込める横書きリーダーってあんまり無いんですよね。           19
Kindle/Playブックス
      との比較
Amazon Kindle




アプリを起動   書籍を読む   書籍を探す   21
Google Play ブックス




アプリを起動   書籍を読む      書籍を探す   22
青空読手




アプリを起動   書籍を読む   書籍を探す   23
アプリの比較
                       Kindle                Playブックス                    青空読手
書籍データ                Amazon                 Google Play                 青空文庫
               http://www.amazon.co.jp   https://play.google.com   http://www.aozora.gr.jp

閲覧可能書籍数                 0冊                        5冊                      500冊
※初回起動直後

アプリサイズ                4.5MB                    4.1MB                     1.75MB
※SD移動後端末側サイズ

起動の早さ                    ×                         △                         ○

ページめくり                   △                         ×                         ○

他アプリ連携                   ×                         ×                         ○
                                                                   任意のテキストファイルを表示可能

                                                                    文字サイズ: 9段階
               文字サイズ: 12段階
                                                                      行間: 9段階
                 行間: 3段階
                                          配色: 3パターン                 文字間隔: 5段階
表示設定            余白: 3パターン
                                           輝度調整                     文字の太さ: 5段階
                配色: 3パターン
                                                                     配色: ∞パターン
                  輝度調整
                                                                   輝度調整 / 時計表示
                                                                                             24
Kindle大好きです!!ジョジョ読めるし!!




                      25
「青空読手」開発で心掛けたこと
• インストールしてすぐ使えること
 – ログイン、検索なしですぐに有名書籍を読める
 – ユーザの一番の悩みは「何を読んでいいか分からない」

• 動作が早いこと
 – アイコンをタップしてすぐ起動する / ぬるぬるめくれる

• 見た目の設定はなるべく柔軟に
 – ユーザの要望はユーザの数だけある

• 自分が欲しくて特徴あるアプリをつくる
 【ボツ】 辞書 / 横書 / 収録数増加 / 青空文庫検索 26
どうやって作ってるの?
どうやって作ってるの!?①
   • データは青空文庫サイト *1 から
     zipファイルをDL → 解凍
       – 500 文 庫 分 の zip フ ァ イ ル へ
         の ”URL” を保持

   • フォントは「IPA明朝」をダウン
     ロードして利用
   • あとは頑張って描画処理!
       – (背景+本文+ルビ+タイトル
         +ページ数)x 2     禁則処理等をきちんと実施
                                 しておらず、編集関係の方
                                 に気持ち悪がられたことも…
*1 … http://www.aozora.gr.jp/                    28
どうやって作ってるの!?②
• Twitterによるつぶやき




                   29
どうやって作ってるの!?③
                                     def get_or_post(self):
                                       pdev = self.request.get('dev').encode('utf-8')
                                       pos = self.request.get('os').encode('utf-8')
                                       pver = self.request.get('ver').encode('utf-8')
                                       ptitle = self.request.get('title').encode('utf-8')
                                       pbug = self.request.get('bug').encode('utf-8')

                                       report   = "dev: " + pdev + "¥n"
                                       report   += "os: " + pos + "¥n"
                                       report   += "ver: " + pver + "¥n"
                                       report   += "title: " + ptitle + "¥n"
                                       report   += "bug: " + pbug

                                       mail.send_mail(
                                         sender='hyukix@gmail.com',
                                         to='hyukix@gmail.com',
                                         subject='Bug Report - AozoraYomite',
                                         body=report)




【参考サイト】throw Life - Androidアプリのバグ報告システムを考える
http://www.adamrocker.com/blog/288/bug-report-system-for-android.html                  30
どうやって作ってるの!?④
• 青空プロバイダとの連携機能




                  31
インテントとは?
突然ですがクイズです
• Gmail / Google+ / Twitter を利用
  し、任意の文字列を送信するAndroid
  アプリを作るのに必要な時間は?
  A. 3分
  B. 3時間
  C. 3日
  D. Androidでは無理... だけど...
    3秒でできるよ。そう、iPhoneならね          33
これだけ書けば解決!
public class Test extends Activity {
  /** Called when the activity is first created. */
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

        new AlertDialog.Builder(this).setMessage("Start activity ?")
          .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, "Hello, Android!!");
            startActivity(intent);
          }
        }).setNegativeButton("No", null).show();
    }
}
                                                                        34
This is Android!!   Gmail

                       Google+
                                 twicca




                                     35
どうやって作ってるの!?⑤
 • Twitterへのつぶやき投稿はこんなにかんたん!
final String msg = " 『坊っちゃん』なう #aozorayomite";
final Uri uri = Uri.parse(
        http://twitter.com/home/?status=
        + URLEncoder.encode(msg, "UTF-8"));
final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);




    インテントとは...
                                       のこと               36
Extra Data
Intent と ExtraData                                        –
                                                          –
                                                              EXTRA_ALARM_COUNT
                                                              EXTRA_BCC
                                                          –   EXTRA_CC
Activity Actions       Broadcast Actions                  –   EXTRA_CHANGED_COMPONENT_NAME
–   ACTION_MAIN            –   ACTION_TIME_TICK           –   EXTRA_DATA_REMOVED
–   ACTION_VIEW            –   ACTION_TIME_CHANGED        –   EXTRA_DOCK_STATE
–   ACTION_ATTACH_DATA     –   ACTION_TIMEZONE_CHANGED    –   EXTRA_DOCK_STATE_CAR
–   ACTION_EDIT            –   ACTION_BOOT_COMPLETED      –   EXTRA_DOCK_STATE_DESK
–   ACTION_PICK            –   ACTION_PACKAGE_ADDED       –   EXTRA_DOCK_STATE_UNDOCKED
–   ACTION_CHOOSER         –   ACTION_PACKAGE_CHANGED     –   EXTRA_DONT_KILL_APP
–   ACTION_GET_CONTENT     –   ACTION_PACKAGE_REMOVED     –   EXTRA_EMAIL
–   ACTION_DIAL            –   ACTION_PACKAGE_RESTARTED   –   EXTRA_INITIAL_INTENTS
–   ACTION_CALL            –   ACTION_PACKAGE_DATA_CLEA   –   EXTRA_INTENT
–   ACTION_SEND                RED                        –   EXTRA_KEY_EVENT
–   ACTION_SENDTO          –   ACTION_UID_REMOVED         –   EXTRA_PHONE_NUMBER
–   ACTION_ANSWER          –   ACTION_BATTERY_CHANGED     –   EXTRA_REMOTE_INTENT_TOKEN
–   ACTION_INSERT          –   ACTION_POWER_CONNECTED     –   EXTRA_REPLACING
–   ACTION_DELETE          –   ACTION_POWER_DISCONNECT    –   EXTRA_SHORTCUT_ICON
–   ACTION_RUN                 ED                         –   EXTRA_SHORTCUT_ICON_RESOURCE
–   ACTION_SYNC            –   ACTION_SHUTDOWN            –   EXTRA_SHORTCUT_INTENT
–   ACTION_PICK_ACTIVITY                                  –   EXTRA_STREAM
–   ACTION_SEARCH                                         –   EXTRA_SHORTCUT_NAME
–   ACTION_WEB_SEARCH                                     –   EXTRA_SUBJECT
–   ACTION_FACTORY_TEST                                   –   EXTRA_TEMPLATE
                                                          –   EXTRA_TEXT
                                                          –   EXTRA_TITLE
                                                          –   EXTRA_UID               37
青空読手でのインテント活用
• 青空文庫サイトから書籍データをダウンロードするための
  アプリ。リーダー機能は備えていない
               ×
• 青空文庫リーダーアプリ。書籍データへのリンクは予め収
  録したランキング。任意データ取得は不可



          【インテント発行】
          だれか!このテキ
          ストを表示して!!



                           38
マネタイズ方法
マネタイズとはなんぞや?


[名](スル)無料のサービスから始めて、将来、
収益を生む事業に発展させること。
 例えばインターネット事業で、コンテンツを
無料で提供し、多数の利用者を獲得したところ
で有料コンテンツに移行したり、検索エンジン
を無料で提供しながら利用者以外から広告収入
を得るなど、さまざまな方法が考えられている。

出典:マネタイズ【monetize】の意味 - 国語辞書 - goo辞書 http://goo.gl/RRI8   40
突然ですがクイズです パート2
• 青空読手のユーザの 10% が ¥210-
  で購入してくれていたとすると、これまでに
  私の懐にいくら入っていたでしょう?
  A. ¥400,000-
  B. ¥4,000,000-
  C. ¥40,000,000-
  D. もっと稼げる。そう、iPhone ならね
                            41
実はけっこう稼げるAndroid!?
• 儲け = [販売数] x [価格] x [70% (配分)]




300,000 (DL数) × 10% (購入割合)
               × ¥210- × 70% (配分)

    =   ¥4,410,000-                 42
DL 数が伸びないことには...
          ①   ②




                   43
Android有料アプリは苦戦中...
• そこで広告!Androidでは AdMob がメジャー




                    タップすると幸せになれます!
                         僕が…




                                 44
広告収入全盛期の盛り上がりっぷり




               45
関連アプリのご紹介
SocialBeer by AMBER RONDO, PRO&BSC
• ビール図鑑&「のんだ!」記録アプリ




                                      47
ささねが by soreco.me
• 仙台に届け!願いごと投稿アプリ




                     48
passer by @tototti
• 据え置き型Twitterクライアントアプリ




                          49
Shin-Kan News Reader by @tototti
• 電光掲示板風RSSリーダアプリ




                               50
STAND CAMERA by @tototti
• トレーディングカード風画像作成アプリ




                            51
Follow me !!




@hyukix       樋口祐紀



                     52

Contenu connexe

Similaire à AozoraYomite @InfoTalk 2012/12/21

Core Graphics on watchOS 2
Core Graphics on watchOS 2Core Graphics on watchOS 2
Core Graphics on watchOS 2Shuichi Tsutsumi
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06俊仁 小林
 
Google io2011報告
Google io2011報告Google io2011報告
Google io2011報告cat kaotaro
 
『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆5mingame2
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testingTakuto Wada
 
未踏成果発表
未踏成果発表未踏成果発表
未踏成果発表yayugu
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12Takanori Suzuki
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことKatsutoshi Makino
 
Programmer @jc-21 2014/03/29
Programmer @jc-21 2014/03/29Programmer @jc-21 2014/03/29
Programmer @jc-21 2014/03/29Yuki Higuchi
 
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜ガイドラインからみたアプリUI〜iPhone用とAndroid用〜
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜Chihiro Tomita
 
ユーザーストーリー:ファースト・ジェネレーション
ユーザーストーリー:ファースト・ジェネレーションユーザーストーリー:ファースト・ジェネレーション
ユーザーストーリー:ファースト・ジェネレーションMasanori Kado
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツTakehisa Ikeda
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 
一口で何度もおいしい?DSL
一口で何度もおいしい?DSL一口で何度もおいしい?DSL
一口で何度もおいしい?DSLYou&I
 
デブサミ2013【15D-3】Azureセッション資料
デブサミ2013【15D-3】Azureセッション資料デブサミ2013【15D-3】Azureセッション資料
デブサミ2013【15D-3】Azureセッション資料Shinichiro Isago
 

Similaire à AozoraYomite @InfoTalk 2012/12/21 (20)

Core Graphics on watchOS 2
Core Graphics on watchOS 2Core Graphics on watchOS 2
Core Graphics on watchOS 2
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
 
Google io2011報告
Google io2011報告Google io2011報告
Google io2011報告
 
『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing
 
未踏成果発表
未踏成果発表未踏成果発表
未踏成果発表
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
Programmer @jc-21 2014/03/29
Programmer @jc-21 2014/03/29Programmer @jc-21 2014/03/29
Programmer @jc-21 2014/03/29
 
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜ガイドラインからみたアプリUI〜iPhone用とAndroid用〜
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜
 
ユーザーストーリー:ファースト・ジェネレーション
ユーザーストーリー:ファースト・ジェネレーションユーザーストーリー:ファースト・ジェネレーション
ユーザーストーリー:ファースト・ジェネレーション
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
一口で何度もおいしい?DSL
一口で何度もおいしい?DSL一口で何度もおいしい?DSL
一口で何度もおいしい?DSL
 
Oss on Azure, social mobile web
Oss on Azure, social mobile webOss on Azure, social mobile web
Oss on Azure, social mobile web
 
デブサミ2013【15D-3】Azureセッション資料
デブサミ2013【15D-3】Azureセッション資料デブサミ2013【15D-3】Azureセッション資料
デブサミ2013【15D-3】Azureセッション資料
 

AozoraYomite @InfoTalk 2012/12/21