• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
AOZORAYOMITE and Intent
 

AOZORAYOMITE and Intent

on

  • 1,433 views

青空読手の諸々の紹介とインテントっていいね!ってお話。

青空読手の諸々の紹介とインテントっていいね!ってお話。
11/09/30(金)第20回日本Androidの会東北支部発信会@仙台AER8Fにて発表した際のスライドです。

Statistics

Views

Total Views
1,433
Views on SlideShare
1,422
Embed Views
11

Actions

Likes
0
Downloads
4
Comments
0

3 Embeds 11

http://paper.li 5
http://s.deeeki.com 3
http://s.deeeki.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AOZORAYOMITE and Intent AOZORAYOMITE and Intent Presentation Transcript

    • 青空読手とインテント 2011/09/30(金)@東北支部発信会 樋口 祐紀 (@hyukix / hyukix@gmail.com)
    • 自己紹介
    • 自己紹介名前: 樋口 祐紀 (ひぐち ゆうき)年齢: 31歳 (1980/02/08)出身: 三重県四日市市所属: (株)PRO&BSC趣味: 10年前までは... 3
    • Androidとの関わりは... 4
    • 青空読手って!?
    • 青空読手のご紹介①作者一覧やランキングから選択 文庫の表示 もちろんしおり機能も 6
    • 青空読手のご紹介② サイズ: 極大 + 太さ: 極太 サイズ: 極小 + 太さ: 極細文字のサイズと太さの指定 7
    • 青空読手のご紹介③ SDカードや本体内の テキストの読み込みも可能 横向き表示にも対応 8
    • mobile ASCII vol.5に掲載! 2011/7/29発行 9
    • PLUTINUM Prize 頂きました! 10
    • ディベロッパーコンソール 端末 国1 Samsung Galaxy S 12.5% (14,561) 1 日本 98.3% (114,643)2 Sharp IS03 10.7% (12,507) 2 アメリカ合衆国 0.4% (481)3 Fujitsu Toshiba REGZA Phone T01C 8.8% (10,219) 3 中国 0.3% (321)4 SEMC Xperia X10 6.8% (7,946) 4 大韓民国 0.2% (224)5 Samsung Galaxy Tab 6.5% (7,544) 5 台湾 0.2% (214)6 SO-02C 6.4% (7,485) 6 香港 0.1% (98)7 SEMC Xperia Arc 6.3% (7,313) 7 タイ 0.1% (84)8 Samsung Galaxy S2 4.3% (4,959) 8 イギリス 0.1% (71)9 Sharp IS01 3.1% (3,599) 9 オーストラリア 0.0% (52)10 Sharp Lynx 3D SH-03C 3.0% (3,455) 10 シンガポール 11 0.0% (51)
    • どうやって作ってるの?
    • どうやって作ってるの!?① • データは青空文庫サイト *1 から zipファイルをDL後、解凍 – 500文庫分のzipファイルへのリン クを保持 • フォントは「IPA明朝」をダウン ロードして利用 • SurfaceViewで頑張って描画 – (背景+本文+ルビ+タイトル +ページ数)x 2*1 … http://www.aozora.gr.jp/ 13
    • どうやって作ってるの!?②• Twitterによるつぶやき 14
    • どうやって作ってるの!?③ • 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); 15
    • どうやって作ってるの!?④ 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 16
    • どうやって作ってるの!?⑤• 青空プロバイダとの連携機能 17
    • 突然ですがクイズです• Twitter / Evernote / メールを利用し、 任意の文字列を送信するAndroidアプ リを作るのに必要な時間は? A. 3分 B. 3時間 C. 3日 D. Androidでは無理... だけど... 3秒でできるよ。そう、iPhoneならね 18
    • これだけ書けば解決!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(); }} 19
    • This is Android!! Evernote IMoNi twicca 20
    • インテントって!?
    • インテントって何? • 処理依頼メッセージのこと – 例: AK Notepadによる他アプリ機能 AK Notepadにてテキ ACTION_SEND イ ン Twidroidにペーストさ ストを入力。メニューから テ ン トが発行 さ れ 、 対 れる。ポイントは相互連 Shareを指定すると… 応アプリがリストアップ 携を前提としてない点出典:使って分かったAndroidとiPhoneの違い http://goo.gl/5nGc 22
    • Extra DataIntentとExtraData – – EXTRA_ALARM_COUNT EXTRA_BCCActivity Actions Broadcast Actions – EXTRA_CC– ACTION_MAIN – ACTION_TIME_TICK – EXTRA_CHANGED_COMPONENT_NAME– ACTION_VIEW – ACTION_TIME_CHANGED – EXTRA_DATA_REMOVED– ACTION_ATTACH_DATA – ACTION_TIMEZONE_CHANGED – EXTRA_DOCK_STATE– ACTION_EDIT – ACTION_BOOT_COMPLETED – EXTRA_DOCK_STATE_CAR– ACTION_PICK – ACTION_PACKAGE_ADDED – EXTRA_DOCK_STATE_DESK– ACTION_CHOOSER – ACTION_PACKAGE_CHANGED – EXTRA_DOCK_STATE_UNDOCKED– ACTION_GET_CONTENT – ACTION_PACKAGE_REMOVED – EXTRA_DONT_KILL_APP– ACTION_DIAL – ACTION_PACKAGE_RESTARTED – EXTRA_EMAIL– ACTION_CALL – ACTION_PACKAGE_DATA_CLEA – EXTRA_INITIAL_INTENTS– ACTION_SEND RED – EXTRA_INTENT– ACTION_SENDTO – ACTION_UID_REMOVED – EXTRA_KEY_EVENT– ACTION_ANSWER – ACTION_BATTERY_CHANGED – EXTRA_PHONE_NUMBER– ACTION_INSERT – ACTION_POWER_CONNECTED – EXTRA_REMOTE_INTENT_TOKEN– ACTION_DELETE – ACTION_POWER_DISCONNECT – EXTRA_REPLACING ACTION_RUN ED– – EXTRA_SHORTCUT_ICON ACTION_SYNC – ACTION_SHUTDOWN– – EXTRA_SHORTCUT_ICON_RESOURCE– ACTION_PICK_ACTIVITY – EXTRA_SHORTCUT_INTENT– ACTION_SEARCH – EXTRA_STREAM– ACTION_WEB_SEARCH – EXTRA_SHORTCUT_NAME– ACTION_FACTORY_TEST – EXTRA_SUBJECT // インテントによるブラウザ起動の例 – EXTRA_TEMPLATE Uri uri = Uri.parse("http://probsc.jp"); – EXTRA_TEXT Intent intent = new Intent(Intent.ACTION_VIEW, uri); – EXTRA_TITLE startActivity(intent); – EXTRA_UID 23
    • インテントは空も飛ぶんです!Chrome to Phone おもむろにクリック! Androidでブラウズ 24
    • 空飛ぶインテントの正体は...• Cloud to Device Messaging (C2DM) – サーバからAndroidアプリケーションへの軽量 メッセージの送信を助けるサービス – メッセージはキューイングされるが順序保証なし – ア プ リ は 常 時 起 動 の 必 要 は な く 、 Intent Broadcastをトリガーに起動される – 処理方法はアプリに依存 – Android2.2 (Froyo) が必要 – Googleアカウントの設定と接続が必要 25
    • C2DMのアーキテクチャ Google C2DM Servers 1. (Register) Sender ID / Application4. (POST 2. Registration ID https://android.apis.google.com/c2dm/send) (定期的に更新) Registration ID / data.<key> 5. Message App 3. Registration ID Application ID (定期的に更新)Third-Party Sender IDApplication Server 6. Intent Mobile Device 26
    • 青空読手でのインテント活用• 青空文庫サイトから書籍データをダウンロードするための アプリ。リーダー機能は備えていない ו 青空文庫リーダーアプリ。書籍データへのリンクは予め収 録したランキング。任意データ取得は不可 27
    • 暗黙的インテントを受け取るためのManifest宣言<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=http://schemas.android.com/apk/res/android package="com.gmail.hyukix.aozorayomite" android:versionName="0.9.8.2" android:versionCode=“10”> ・・・ <application android:icon=“@drawable/icon” android:label=“@string/app_name”> <activity android:name=".AozoraYomite" android:label="@string/app_name" android:screenOrientation=“portrait”> <intent-filter><action android:name=“android.intent.action.MAIN” /> <category android:name=“android.intent.category.LAUNCHER” /></intent-filter> </activity> <activity android:name=".Reader" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <!-- file://xxxxのようなリクエストを受け付ける --> <data android:scheme="file" android:mimeType="text/plain" /> </intent-filter> </activity> ・・・ </application> ・・・</manifest> 28
    • Activityでのインテント判定と処理振り分けpackage com.gmail.hyukix.aozorayomite; ・・・public class Reader extends Activity { ・・・ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ・・・ if (Intent.ACTION_VIEW.equals(getIntent().getAction())) { // 暗黙的インテント ・・・ } else { // 明示的インテント ・・・ } ・・・ } ・・・} 29
    • マネタイズ
    • この1年で…出典:http://www.apple.com/jp/macbookair/ 31
    • DL 数が伸びないことには... ① ② ③① アンドロイダー レビュー記事② アンドロイダー 青空文庫比較記事③ au one market 登録 32
    • 昨年度末の盛り上がり! 33
    • 今後ともどうぞよろしくお願いします• ハンドアウト – http://bit.ly/nodakK (3.3MB)• 青空読手 ver0.9.8.16 (野良アプリ版) – http://bit.ly/nvkHfM (267KB)• 青空読手 ver0.9.8.16 (AndroidMarket) 34