2014年7月20日日曜日

DevFest GoogleI/O2014報告会メモ

I/OExtended当日はすっごい眠かったしちゃんとフォローしてなかったから、
「へーこれできるようになったんだー」っていうネタ集めって感じですごく役にたったかも。

GoogleMaps GeoJSON

PlacesAPI

MobileAPI

MaterialDesign

http://www.google.com/design/spec/material-design/introduction.html#

AndroidPreview

  • Z軸。Shadow。
  • WebViewでDevToolが使えるらしい
  • WebAudioAPi
  • WebRTC
  • ProjectVolta
  • JobScheduler 条件をいろいろ決められる
  • BEAMがアプリから使えるようになる
  • Notificationのベースがlightカードデザイン
  • ロックスクリーンのNotificationのPrivate/publicレベル決められる
  • ART

Wear

  • Glancable
  • Packing
  • スマホアプリと抱き合わせ以外提供方法は今はない
  • WebKit,AppWidget,usb,print,backupなどは使えない
  • NodeAPI でバイス感の接続を検知
  • DATAAPI Node間でデータのやり取り。KV。Assetでバイナリ可
  • WearableListenerService
  • Notification yanzmさんの記事見た方が早い
  • RemoteInput
  • DesignForWear
    http://developer.android.com/design/wear/creative-vision.html
  • 通常の通知とコンテキストな通知の使い分けを理解する????
  • GoogleFit(詳細不明)

課金

  • 海外市場38%伸び
  • 単純に為替レートでなく、その国で売れそうな価格帯に調整
  • 香港ではキャリアとプリペイド決済、ロシアではキャリア決済開始により大きな伸びが!
  • ☆3は☆2の数倍の売り上げ
  • タブレット用のアプリデザインで売り上げ10倍に
  • タブレットユーザーの一人頭課金額のが大きい
  • 日米は8割、中4割、印1割ネット接続率。人口だと中印はすでに上回る。
  • 中国の英語できる率1%、印10%。ローカライズしよう。
  • カルチャライズもしよう。
  • この辺から本格的にゲームの話
  • ゲームアプリの画像が5割。png。Googleさん気に入らないらしい。
  • DXT1とかPVRとかETC1使ってほしい。(と言われてもなぁ・・・)
  • SavedGamesを使ってほしい

Polymer

Chrome DevTools

  • DeviceMode
  • MediaQueryEditting
  • RemoteDebugging
  • ScreenCast モバイルの実際の画面を表示して操作可能
  • Timeline tracing mode

ServiceWorker

https://github.com/slightlyoff/ServiceWorker/blob/master/explainer.md

  • オフライン時のWebのなんやかや
  • Webページを閉じても動作し続ける
  • Webページ上の通信を完全に制御可能
  • 柔軟なオフラインキャッシュ
  • 別ドメインへの通信も制御できる
  • https必須
  • navigator.serviceworker.register(‘sw.js’).then(success,failure);
  • Push

Dart

  • セッション数によるとGoよりはGoogleも注力してる
  • Ploymerとpaper_elementパッケージでMaterialDesignを実現できる
  • モバイルからクラウドまで
  • DevEditor
他、Chrome、GAE系のセッションは割愛。。。

2014年6月7日土曜日

GoogleI/O2014の予習・情報収集メモ

今年もExtendedで参加です。もちこです。

GoogleI/O2014の事前予習&情報収集メモ。随時追記。
https://www.google.com/events/io

予想記事
http://firespeed.org/diary.php?diary=kenz-1711

AndroidOS
http://developer.android.com/index.html
http://android-developers.blogspot.jp/
6月頭にNexus7、Nexus5に4.4.3のアップデートが来ましたね。
この次の4.5もしくは5.0が発表されるのではないかと予想されてますが、
Androidに関して大きな変更のリークもないし4.5じゃないかなぁと思っています。
最近のGoogle+アプリのアップデートから察するに、デザインガイドラインに大きな変更が来るかも。
WearやGlassに引っ張られてカードUIを今より推して来そう。

Wear
http://developer.android.com/wear/index.html?utm_source=ausdroid.net
https://moto360.motorola.com/
6月は夏に入りますか。何かしら発表はあるはず。

ProjectTnago
https://www.google.com/atap/projecttango/
Tango搭載のタブレットが夏の終わり頃までに開発者に向けて販売されるとの発表がありました。

ProjectAre
http://www.projectara.com/
http://japanese.engadget.com/2014/02/28/google-project-ara-2015-50/
さすがにまだ販売はないか。

Chrome
まだ

2014年3月28日金曜日

AndroidWear勉強会メモ

イベントページ→ http://atnd.org/events/48832
togetter→ http://togetter.com/li/647676

Android Wearのインパクトとこれから 塚本昌彦 教授(@tuka000)
Android Wearの概要とポテンシャル @kojira
Apple Notification Center Service(ANCS)とAndroid Wearの比較 @gclue_akira
Android Wear vs Pebble vs Sony SmartWatch vs Tizen Wearable @sys1yagi
wearのUIガイドライン解説と円型画面UXのポイント @yukio_andoh
Wearアプリ開発経験談(仮) @korodroid
http://www.iplatform.org/blog/archives/1766
iBeaconをトリガーにしたAndroid Wear @amyu_san

Android Wearのインパクトとこれから

・アクションカメラとブレスレット型活動計の市場は既に確立している
・年内に発売おそらくHTCとモトローラ
・昨年発売された多機能ウォッチは100種以上。
 半分がスマートウォッチ。半分は元からスポーツウォッチやGPSウォッチ。
・アクティブメカニズム(通知とか
・OS自体のコンパクト化は進まなそう
・UIの基本はキューカード
・最小限のUIインタラクション
・入力方法の標準は音声になる
・やりたい事を推定して操作を簡単に。文脈に沿うので一歩間違うと難しくなる。
・丸or四角があるので生かしたデザインを
・いきなり彼女のメールを表示してはいけない
・マルチ画面としての使い方がおもしろいかもしれない

Android Wearの概要とポテンシャル

・ GoogleNowとの連携最強
・Noitificationに追加情報を付与することで様々な機能を実装する
・ アプリに渡されるのは入力後のテキストのみ。入力方法を気にしなくてよい
・端末とはIntentのやり取り。いろんなデータを付加できる

カーネルの中身を覗いてみた

・x-google20121006の文字があり開発この頃から?
・ LinuxカーネルはNexus5より新しい
・ /system以下の容量がNexus5の1/5。大幅に軽量化している
・Ringtone100種類 通知に特化か
・アプリ実行のheapsize 32MB Nexus5の1/16くらい
・RILが入ってるので3G対応の可能性もあるかも?消し忘れかも?
・10秒で省電力モードになります
・直接コマンドでsetting叩くと電源長押しの挙動

Apple Notification Center Service(ANCS)とAndroid Wearの比較

・Appcessory
・GATT vs Intent
・通知オンリー vs いろいろ
・通常のBLEでは端末がCentral→アクセサリーがPeripheral。ANCSの場合は逆
・AndroidのBluetooth通信の省電力には不安。
・ハードウェア仕様が欲しいGClueさん

Android Wear vs Pebble vs Sony SmartWatch vs Tizen Wearable

### pebble
- Android iOS相互の通知
- ハードボタンで操作
- app market 時計とアプリ
- スマホからPebbleにインストール
- SDKはあるが、コマンドラインで操作。CかJS
- xhrとかを透過的に処理
- エミュがない

### SONY SmartWatch
- タッチパネル操作
- 時計変更できない
- ハードボタンは一つ
- smart connectでスマホからアプリインストール
- AndroidSDKのアドオンとして環境提供
- APILevel16
- EmulatorもAVDで。
- GooglePlayでアプリ提供

### TizenWearable GalaxyGear
- 通話、カメラ、歩数計
- タッチパネルとホームボタン
- Tizenとの連携。ホストアプリケーションのAssetからGearが取り出す
- TizenSDK上でWebAppsとして作る
- GearManagerというマーケット?市場はどこに。。。

### Wear
- NoitificationListenerServiceがフックして投げる
- Noiticationだけなら今あるアプリの拡張。
- apkインストールできるようになるかはI/Oで。

wearのUIガイドライン解説と円型画面UXのポイント

・glancability
・大きさと色の濃さ、文字の少なさ
・fontよりsound
・丸のデザインでのノウハウ
・正方形デザインでのノウハウ

iBeaconをトリガーにしたAndroid Wear

・StackingNoitificationでカテゴリ分けできるよ
・Buttonのデザインに埋めこんで画像表示できるよ
・Twitterフォローしてね

2014年2月13日木曜日

XamarinをAndroidから始めてみた

Xamarin、始めました。まずはAndroidから。


登録してDownload。インストール。


AndroidとiOSパッケージの追加を忘れずに。


新しいプロジェクトを立ち上げてビルド。


できない。

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: error : Error executing task ResolveSdks: Task does not have property "ReferenceAssemblyPaths" defined

ということで、どうもSDKが古いらしいので、ビルトインでない最新のSDKに参照を変更。
参照の変更がおかしかったので再起動。
再度ビルド。


できない。
今度はfast ssembly deploymentというオプションが悪さをしているらしい。


プロジェクト>【プロジェクト名】のオプション>AndroidBuild
真ん中のfast assembly deploymentというオプションを外す。


動いた。

2014年1月6日月曜日

2013-2014 振り返りとこれからについて

あけましておめでとうございます。
どうしても去年の振り返りが年明けになります。もちこです。

昨年は特にはっきり目標も決めず慌ただしく始まり、
とにかく目の前のことと戦うのに必死でした。
チャンスがあればできるだけ飛び込んでみて、
手にできたものもあるけれど、届かないものもたくさんありました。

去年やったこと


冬コミで技術本に参加しました
http://techbooster-c85.appspot.com/
AndroidMagicBook と、このブログでも掲載した「Android4.4KitKatでscreenrecordを使ってみる」で Feature of KitKat に参加しました。
ブログなどで書くのとはまた違った緊張感だったり、引き受けた直後から急に忙しくなったり、MagicBookはテーマ選びをミスったり、正直死ぬかと思った。
ですが尊敬するAndroiderたちと進捗さんにケツを叩かれ、深夜のテンションのチャットで盛り上がりながらなんとか書き上げたことはとても良い経験になりました。
おかげさまで、冬コミ当日は途切れない客足と販売予定分完売という嬉しい現場に立ち会わせていただき、とても楽しかったです。
この企画を立ち上げてくれたひつじ氏と、「著者あと一人で完璧な数字(42人)だから!」という謎発言で引き込んでくれたわかめ、そして著者・読者のみなさまありがとうございました。

Lチカはじめました
お仕事の方で普段のアプリ開発から大分離れたハードウェアをいじる分野に関わらせていただきました。
やったことは結局AndroidからFirmataというライブラリを通じてArduinoにつないだLEDを光らせるくらいでしたが。
いかにクライアントの要望を叶えるか?いかに効率化するか?
ということを主に考えてきた私にとって、「まだないもの」を作り出す仕事は戸惑いばかりでしたが、新しいものへの需要やそれを作り出す人たちのマインドにたくさんの刺激をもらいました。

ブログのView数が10倍になりました
主に冬コミの Feature of KitKat 参加効果ですが、年明けに割と更新頻度を上げたのが効いたようです。
今は自分の記事検索してもヒットしないこと多いので、今年はちゃんと調整し直す。
ちなみに収益はあってないようなもん。

Uni女やってました
1月に開催された 第一回女性のためのUnityハンズオン勉強会 に刺激を受けて、
女性のための3Dモデリングハンズオン勉強会 を開催しました。
自分は講師側というより主催だけやらせてもらったのですが、
初めて開かれた勉強会を開催するにあたり、どんな人に参加してもらうか、どういうことを持って帰ってもらえば成功か?ということを考えるのが大変でした。
そしてその後 第二回女性のためのUnityハンズオン勉強会「Unityで猫もまっしぐら!」 にも参加したにも関わらず、
Unityアプリを出すに至らなかったのは後悔半分、目的が合わないのかなぁと思いました。

めっちゃボドゲやってました 
スノボやボルダリングやベルギービールなどだいぶ趣味充してましたが、一番はボドゲ。
一昨年末からやったボドゲその他ゲームは

  • マイス
  • パンデミック
  • 人狼
  • ワンナイト人狼
  • タイムライン
  • おばけキャッチ
  • ロボラリー
  • ポーカー
  • マンマミーア!
  • コリドール
  • お邪魔者(1、2)
  • 髑髏と薔薇
  • イチゴリラ
  • ごきぶりポーカー(&ごきぶりキング)
  • カタンの開拓者たち
  • べガス
  • 世界の七不思議
  • クォーリアーズ「魔人到来」
  • ドミニオン
  • TRPG「トラベラー」
  • TRPG「パラノイア」
  • PANIC ON THE WALLSTREET
  • あやつり人形
  • HANABI
  • レジスタンス アヴァロン
  • クー
  • Cucco21
  • ハゲタカのえじき
  • ラブレター
  • コロレット
  • カルカソンヌ
  • 地獄の釜
  • テレスタレーション
  • BLUFF
  • 脱出ゲーム「ドミニオンからの脱出」
  • 脱出ゲーム「巨大神殿からの脱出」
ボードゲームだけで33種類!と、TRPGを2回、脱出ゲームを2回。
多分思い出せてないのもいくつかある。。。結構やったなぁ。
いろんな分野でお友達が増えて楽しかったです。

今年やること


上半期でサービス一本出す
アプリやってて、ゲームじゃなければ行き着く先はサービスなんじゃないかなぁと。
ボードゲーム支援系とかやってみたい。サイトでも良。
それに必要な技術はトータルで勉強したい。特にデザイン系の技術。

冬コミ本とか、勉強会開催とか、去年とりあえず飛び込んでみて楽しかったことは多いので、
今年もアグレッシブにチャンスには乗っかって行きます。
他にもお仕事とかで目標あるけどとりあえずここまで。
本年もよろしくお願いいたします。

2013年11月16日土曜日

Android4.4KitKatでscreenrecordを使ってみる

歳を取った瞬間したことは AdventCalendarの更新でした。
Android 4.4 KitKat 冬コミ原稿リレーを開催」の11/16担当、mochicoです。
本記事ではAndroid4.4KitKatで追加されたadbの機能、screenrecordについてお話します。

超訳 Recording a device screen

http://developer.android.com/tools/help/adb.html#screenrecord

screenrecordはAndroid4.4(API level 19)以上で動作するディスプレイ録画のシェルコマンドです。
MPEG-4ファイルとして書き出され、プレゼンテーションの一部などに使用することができます。
別の端末等でわざわざ使用方法の動画を作ったりしなくてよくなるので、便利です。

AndroidのSDKにパスが通っていれば、KitKat端末をつないで

$ adb shell screenrecord /sdcard/ファイル名.mp4

で記録を開始します。--time-limitオプションをつけなければ

3分間待つ  or  Ctrl-C

で録画を終了します。端末に保存されます。
ギャラリーからも確認することができます。

PCにファイルを持ってきたい場合は

$ adb pull /sdcard/ファイル名.mp4

注意:
・端末によっては解像度の問題で記録ができない場合があります。解像度のオプションを変更してみてください・記録中の画面回転には対応していません。記録中に画面の回転が起こった場合、記録が中断されます
・音声は記録されません

オプション
--help 使い方を表示します
--size 画面サイズを指定します。デフォルトは端末のメインディスプレイの解像度です(サポート外の大きさの場合1280x720になります)。デバイスのAVCエンコーダーでサポートされているサイズを使用するのが一番良いです。
--bit-rate ビットレートを指定します。クオリティと容量がトレードオフになります。デフォルトで4Mbpsです。
sceenrecord --bit-rate 6000000 /sdcard/ファイル名.mp4
--time-limit 180秒以内で記録秒数の最大値を指定します。
--rotate 出力を90度回転させます。実験的な機能だそうです。
-- verbose Logをコマンドラインに表示します。これを指定しないと記録中特に何も表示されません。

超訳ここまで//

ちなみに、このscreenrecordはシステム権限が必要なためアプリからは使用できないようです。
また、バーチャルデバイスで記録を行うこともできません。

AndroidStudioでやってみる

AndroidStudio0.3.2からscreenrecordの機能が追加されていました。
こちらも(AndroidStudioさえ正常に動いていれば)超簡単なのでやってみましょう。


AndroidDDMSの左側ツールボタンに緑色のScreenRecordボタンを押します。


ビットレートと解像度を指定してStartRecordingをクリックします。


記録中のダイアログが出るので、任意のタイミングでStopRecordingをクリックします。

PC上の保存先を指定します。


記録が完了しました。
コマンドで行ったのと同様、mp4ファイルは端末上にも保存されています。

screenrecordの使いどころ
今まではPC上のバーチャルデバイスを録画するなどして作らなければならなかった動画を作る手間は大幅に省かれるでしょう。
root権限を取得したり、アプリを新しいアプリを入れる必要もありません。
解像度やビットレートも指定できるので、あとから動画を軽くする必要もありません。
GooglePlayに使いかたをあげたり、動きのプレビューを気軽に共有できるようになります。
issueに動画をつけるなんてのも簡単ですね!


screenrecordのコードは以下から確認できます。
http://tools.oesf.biz/android-4.4.0_r1.0/xref/frameworks/av/cmds/screenrecord/screenrecord.cpp

コレを使ってASMみたいにPCにミラーリングできないかなぁと眺めていますが、むずかしいですね。

明日は11/17 @sys1yagi さんの「Printing Framework後編」です。

2013年5月13日月曜日

GoogleAnalytics v2をAndroidアプリに導入する

ご存知GoogleAnalytics。

AndroidのSDKManageからも落とせるのですが、
こちらが2013.1.8にv2beta4にアップデートしたようです。

基本的にはv1とそう変わらないし、
OverViewからNextstep、自分の使いたい機能をDevGuideから見れば問題ないのだけど、
微妙な変更点についてとOverViewつまみぐい。

つかいかた
①libs下にlibGoogleAnalyticsV2.jarを配置

②AndroidManifest.xmlに以下のpermission追加

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

③analytics.xmlをvalues以下につくる
<?xml version="1.0" encoding="utf-8"?>

<resources>

 <string name="ga_trackingId">トラッキングID</string>

 <!-- Enable automatic activity tracking -->

 <bool name="ga_autoActivityTracking">true</bool>

 <!-- Enable automatic exception tracking -->

 <bool name="ga_reportUncaughtExceptions">true</bool>

</resources>
④トラッキングスタート
EasyTracker.getInstance().startActivity(context);
をonStartに
EasyTracker.getInstance().stopActivity(context);
をonStopに書く。

Activity以外で使いたい場合は
EasyTracker.getInstance().setContext(context);
あとはEasyTracker.getInstance().sendEventやsendViewでTraackerを利用できる。


v1からの大きな違いは、一番簡単な方法ではEasyTrackerというクラスを使うようになったことと、
analytics.xmlを作らなければいけなくなったこと。
setAppIdのメソッドは残っているけれど、意味がないようなのでanalytics.xmlでトラッキングコードを設定する。
また、Androidのライブラリからリアルタイム解析を使用する場合にはプロファイルをモバイルで作成しないと反映されないようです。