Local blog for Japanese speaking developers
ついに iOS に対応。 Mobile Backend Starter でサーバー コーディングいらずのモバイル アプリ開発
2013年10月10日木曜日
Posted by 佐藤一憲 Solutions Architect, Cloud Solutions Team
[この記事は Mobile Backend Starter のプロダクト マネージャー、Stuart Reavley が Cloud Platform Blog に投稿した記事、
Speed up iOS development with Google Cloud Platform
を元に、佐藤が加筆・再構成しています]
サーバー側のコーディングをせずとも Google Cloud Platform の豊富なバックエンド機能にモバイル アプリから簡単にアクセスできる
Mobile Backend Starter
。既存の Android 版に加えて、新たに
iOS
がサポートされました。この iOS 対応 Mobile Backend Starter については、11/7 に開催される
iOS Enterprise & Developers Conference 2013
で
Google 佐藤が担当するセッション
においても詳しく紹介される予定です。
Mobile Backend Starter は、サーバー側のコーディングの不要な Backend as a Service(BaaS)スタイルのバックエンドを
Google App Engine
上に簡単にアップロードできる開発環境です。モバイル アプリケーション側のクライアント ライブラリを通じて、以下のバックエンド機能を利用できます。
クラウド上でのデータの保存とユーザー間の共有
モバイル端末への push 通信
データの更新をモバイル端末に即座に伝える continuous query
モバイル端末同士の pub/sub メッセージング
Google アカウントによるユーザー認証とアクセス コントロール
Mobile Backend Starter は App Engine のアプリケーションとしてアップロードされるため、ある程度の規模までは無償で運用できるほか、 App Engine の特長であるきわめて高いスケーラビリティと優れた信頼性を備えます。またクライアント側とバックエンド側両方のソースコードがオープンソースとして公開されていますので、バックエンドの機能拡張も容易です。いわば、BaaS と Platform as a Service(PaaS)を「いいとこ取り」した環境と言えます。
Android デベロッパーの
Ryan Harter
は Mobile Backend Starter を用いて Android 向けアプリ
Hashnote
を開発し、またたく間に 20,000 ユーザーを獲得することに成功しました。
「Mobile Backend Starter のおかげで Android 向けアプリの開発にフォーカスしながらもバックエンドの豊富な機能を簡単に活用できました。一番のポイントは、バックエンド側のソースが公開されておりブラックボックスではないことです。そのため、Hashnote 固有のロジックをすぐに追加できたほか、バックエンド内部のコードの書き方を学ぶこともできました。」(Ryan Harter)
iOSのサポート
今回、この Mobile Backend Starter に新たに iOS のサポートが追加されました。iOS 向けアプリにインストールしたライブラリを用いて、上述のバックエンド機能を直接呼び出せます。App Engine から iOS デバイスに対して Apple Push Notificcation Service (APNS) によるスケーラビリティと可用性の高いプッシュ通信を行うための
バックエンド設計
が新たに導入されています。すでに Android 向けにサポートされていた Google Cloud Messaging によるプッシュ通信とも統合されており、iOS 向けアプリと Android 向けアプリの間で 1:1 や 1:N のメッセージングをとても簡単に実装できます。
使ってみよう
お手元に iPhone または iPad、および Xcode 開発環境があれば、以下のごく簡単な手順で Mobile Backend Starter を試せます(より詳しい手順は
こちら
をご覧ください)。
App Engine 上にバックエンドを
アップロード
する
iOS クライアントの zip ファイル
をダウンロードする(
GitHub リポジトリ
からソースコードのダウンロードも可能です)
Xcode にインポートし、サンプルを実機上で動作させる(シミュレーターでは動作しません)
また、Android 向けサンプルもついても
こちらの手順
で試せます。
今回の iOS のサポートによって、iOS と Android の両方をサポートするサービスを、サーバー側のコードを一切書かずとも簡単に構築できるようになりました。モバイル開発の経験はあるけどサーバー側の開発は苦手......という方は、ぜひ試してみてください。なお、Mobile Backend Starter については今年の Google I/O 2013 のセッション From Nothing to Nirvana in minutes: Cloud Backend for Your Android App でも詳しく紹介されていますので、
スライド
および
ビデオ
を合わせてご覧ください。
Google API Expert ミーティング 9 月を開催しました
2013年10月10日木曜日
Posted by Developer Relations Team
Google API Expert は Google が認定した API やツールに精通したデベロッパーの方々です。現在、20 名の Google API Expert が 8 つ の準公式コミュニティを運営し、Google が提供する API やツールを利用するデベロッパーの皆さまをサポートしています。
【準公式コミュニティと API Expert の一覧】
http://sites.google.com/site/devreljp/Home/api-expert
それでは、9 月 24 日に開催された 第 57 回 API Expert ミーティングの内容から、いくつかハイライトをお伝えします。
【全体会より】
今回の API Expert ミーティングでは、先日開催されたイベント「
Google Cloud Platform Roadshow
」の報告を行いました。 2 日にわたって開始されたこのイベントでは、来日した Google の Cloud Platform チームが低コストなウェブアプリケーション構築を実現する Google のサービスを紹介し、2 日目には実践的なコードラボも行いました。
【ライトニングトーク】
また、今回は API Expert によるライトニングトークも行いました。予定にない、突然のライトニングトークでしたが、常に最新の技術を追いかけている API Expert だけあり、それぞれが興味を持っている面白い技術やアプリケーションが次々と披露されました。その中の 1 つをご紹介します。
「気持ちを伝えるチャット」
HTML5 の API Expert である小松健作さんによる、HTML5 の表情認識フレームワークと笑顔認識フレームワークを活用したチャットです。カメラで表情を認識し、笑顔になるとチャットに表示されるイラストも笑顔に変わるというものです。
このチャットの概要は小松さんが別なイベントで行ったライトニングトークの
レポート
の「LT大会!!さて、その時小松は?」に詳しく掲載されています。また、チャットのソースコードは
こちら
で公開されています。
【分科会より】
各技術分野で行われている分科会からいくつかトピックを取り上げます。
- App Engine 1.8.4 がリリースされました。 [
http://goo.gl/CtukcU
]
- HTML5 Conference 2013 のティーザーサイトが公開されました。 [
http://goo.gl/n7x2MV
]
- Android の次期バージョン KitKat® が公開されました。[
http://goo.gl/chFCqn
]
次回の API Expert ミーティングは 2013 年 10 月後半に開催を予定しています。
GDG DevFest Season 2013 が開催されます
2013年10月8日火曜日
Posted by
山崎富美 Developer Relations Team
Google Developers Group (GDG) コミュニティの皆さんが主催する開発者向けイベント「GDG DevFest Season」が今年も世界各地で開催されています。昨年は 41 カ国で 77 個の GDG DevFest が開催され、14,000 人を超える開発者の皆さんが参加されました。今年は昨年以上の規模となっており、63 カ国で 160 以上の GDG DevFest が行われ、30,000 人を超える参加者が
見込まれて
います。
日本では、GDG 京都、GDG 四国、GDG 九州それぞれのコミュニティが以下の日程で開催を予定しています。 参加を希望される方は、会場ごとに参加お申し込みフォームが用意されていますので、ご登録ください。
■イベント概要
●GDG DevFest Kyoto 2013
日程:2013 年 10 月 19 日 (土) 12:30 - 18:40 (終了後、懇親会)
場所:京都リサーチパーク
内容:Android と Google Apps Script のコードラボ
定員:35 名(Android: 20 名、Google Apps Script: 15 名)
主催:GDG 京都
詳細:
http://goo.gl/hO3VDe
●すだちハッカソン - DevFest Season 2013
日程:2013 年 11 月 2 日(土)13:30 から 4 日(月)12:00 まで
概要:ハッカソン/他コミュニティとも合同で行う予定
場所:徳島 - 神山バレー・サテライトオフィス・コンプレックス
定員:30 名
主催:GDG 四国
詳細:
http://goo.gl/elEUHp
●GDG 九州 DevFest 温泉 in 湯布院
日程:2013 年 11 月 2 日(土)13:00 から 4 日(月)15:00 まで
概要:ハッカソン
場所:日本文理大学湯布院研修所(大分県由布市湯布院町川上 3374)
定員:30 名
主催:GDG 九州
詳細:
http://goo.gl/uI9Xt9
GDG Devfest Season 2013 全体に関する情報は
こちら
をご覧ください。
Chrome Tech Talk Night × 2 days 開催 全 6 セッション
2013年10月4日金曜日
Posted by
北村英志 Developer Relations Team
10 月 29 日(火)、10 月 30 日(水)の 2 日連続で Chrome チームのエンジニアを講師とするイベントを開催します。10 月 29 日(火) は Google 主催の Chrome Tech Talk Night #6 、10 月 30 日(水)は 株式会社サイバーエージェント主催のフロントエンド系技術セミナー Frontrend x Chrome Tech Talk Night Extended です。
Chrome Tech Talk Night #6 の詳細とお申し込みフォームは以下にてご紹介しています。
Frontrend x Chrome Tech Talk Night Extended については
こちらのサイト
をご覧ください。
<Chrome Tech Talk Night #6 概要>
今回は、来日する 3 名の Chrome チームのエンジニアが ウェブの最新技術やモバイル ウェブサイト UX の課題解決についてお話しします。ご興味のある方はふるってご参加ください。
第 1 部 : Polymer と Web Components を使ったモダンアプリケーションの作り方 (Building modern apps with Polymer & Web Components)
講演者 Eric Bidelman | Developer Programs Engineer
Web components are a fundamentally different way of building web apps. Shadow DOM, templates, custom elements, and HTML Imports yield a huge boost in productive and allow us to finally create reusualbe, shareable components. In this session, you'll learn how to use Google's new framework Polymer to create web component-based applications.
Web Components は、Web アプリケーションを構築するための根本的に異なる方法です。Shadow DOM、Templates、Custom Elements、および HTML Imports は開発生産性を大きく高めるとともに、再利用や共有が可能なコンポーネントを作成することができます。このセッションでは、Web Components によるアプリケーションを作成するための Google の新しいフレームワーク「Polymer」の使い方を紹介します。
第 2 部 : モバイルウェブ UX でよくある問題とその直し方 (Common UX problems on the mobile web and how to fix them)
講演者 Paul Kinlan | Developer Advocate
In this talk we will find some of the ux problems users and developers face on the mobile web and show you how you can solve them
このセッションでは、モバイルウェブにおいて、ユーザや開発者が直面するUX 問題を明らかにし、その解決方法を紹介します。
第 3 部 : ジャンクバズターズ: Chrome レンダリングパフォーマンス (Jank Busting: Chrome Rendering Performance)
講演者 Tom Wiltzius | Product Manager
Building applications that scroll and animate smoothly on the mobile web is hard! In this talk we'll walk through how to figure out what's going on in the browser's tiny brain when you apply complicated CSS styles or adjust them in JavaScript, and how you can use Dev Tools and GPU acceleration to make your site render faster.
モバイルウェブにおいて、スクロールやアニメーションをスムーズに動かすアプリケーションを構築することは難しいですよね!このセッションでは、みなさんが複雑な CSS スタイルを適用したり、JavaScript でこうしたスタイルを調整する時に、ブラウザの中で何が起きているかを把握する方法、さらに、サイトを高速にレンダリングするために Dev Tools や GPU アクセラレータをどのように使うかをご紹介します。
<イベント概要>
名称 : Chrome Tech Talk Night #6
日時 : 2013 年 10 月 29 日(火) 19:00 - 21:30 (受付 18:30 〜 19:30)
※ 終了後、懇親会(軽食付き)を行う予定です。
場所 : Google 東京オフィス 六本木ヒルズ森タワー
会費 : 無料
主催 : Google
※ 英日逐次通訳あり
※ 当日はライブ配信を行う予定です (ただし、諸事情により実施しない場合があります)。
<申し込み方法>
申し込みフォーム よりお申し込みください。
定員に達しましたので、受付を終了しました。
なお、当日英語でのライトニングトークを行いたい方がいましたら、申し込みフォームで話したい内容を記載してください。ライトニングトーク希望者が多い場合は、お話しいただける方に後日連絡します。
先着順による受付です。定員は 80 名です。定員になり次第、受付を締め切ります。
なお、参加証は 10 月 21 日(月)より、順次ご登録いただいたメールアドレス宛にお送りする予定です。
多くの皆様のご参加をお待ちしております。
Go 言語コードラボを開催します
2013年10月3日木曜日
Posted by
山口 能迪 Developer Advocate
10 月 17 日(木)に、シドニーより Go 言語の開発コアメンバーである Andrew Gerrand が来日し、Go 言語のコードラボを行います。
今回は、「Whispering Gophers: networking programming in Go」というテーマで、Go 言語を使ったアプリケーションを実際に開発していただくことで、Go 言語を体験していただく内容となっています。
Go 言語は、並行モデルをもった楽しい新しいプログラミング言語であり、楽しく素直にネットワーク プログラミングを行うことができます。このコードラボでは、ピアツーピアで参加者同士が通信するチャット ネットワークを構築します。Go 言語の並列性プリミティブや標準ライブラリをハンズオンで体験していただきます。
Go 言語をもっと知りたいという方は、ぜひご参加ください。
<イベント概要>
名称:Go 言語 コードラボ
日時 : 2013 年 10 月 17 日(木) 19:00 - 22:00 (受付 18:30 - 19:30 )
※軽食とドリンクをご用意する予定です
会場 : Google 東京オフィス
東京都港区六本木 6 - 10 - 1 六本木ヒルズ森タワー
主催 : Google
定員 : 30 名
会費 : 無料
関連情報 :
・
whispering-gophers
・
Go Concurrency Patterns
・
Advanced Go Concurrency Patterns
※プログラムは変更する場合があります。
<申込方法>
申し込みフォームよりお申し込みください。
先着順による受付です。定員になり次第、受付を締め切ります。
定員に達しましたので、受付を終了しました。
なお、参加証は 10 月 10 日(木)より順次ご登録いただいたメール アドレス宛に順次お送りする予定です。
「Google 日本語入力パタパタバージョン」開発の舞台裏
2013年10月1日火曜日
Posted by
山崎富美 Developer Relations Team
皆様、今年のエイプリルフールで大人気を博した「Google 日本語入力パタパタバージョン」を覚えていらっしゃいますか?
ご存知ない方は、こちらのブログ記事をご覧ください。
「
Google 日本語入力チームからの新しいご提案
」
製品サイト
http://www.google.co.jp/ime/patapata/
こちらからお試し版をご利用頂けます。
http://www.google.co.jp/ime/patapata/message.html
この Google 日本語入力パタパタバージョン開発の裏話を聞くため、開発チームに集まってもらいました。ウェブマスターの小久保浩大郎と三浦健、ソフトウェア エンジニアの椎野裕樹、山口辰久、小松弘幸、マーケティングの虫賀千絵の 6 人です。
Q: Google 日本語入力チームは毎年様々なエイプリルフールネタを仕込んでいますね。まずは、なぜ今年はパタパタバージョンを作ることにしたのか、教えてください。
小松: Google 日本語入力は過去 2 回、エイプリルフールをやってますので、その流れは最初から意識していました。2010 年の
ドラム キーボード
はキーの数が多すぎたので、その反省から 2012 年はキーの数を 1 つにした
モールスバージョン
を開発しました。
山口: モールスバージョンにどんな課題があるのか? どんな改善ができるだろうか? と考えたところ......
椎野: 和文モールス符号を全部覚えなければならないのは、明らかな欠点だと気付いたのです!
一同:(コイツ...気付いてなかったのかよ... 最初からわかるだろ!)
小久保: キーの数は 1 つのまま、何も覚えなくても使える入力方法は何だろうと考えたところ、ダーツで入力できないか?というアイディアが出ました。文字を並べた板にダーツを投げるのです。馬鹿馬鹿しいでしょ?
山口: 「投げて当てる」と言えば、宝くじの抽選では番号を書いた回転する円盤に向かって矢を射りますが、同じ方法で日本語を入力できないか?というアイディアが出て...
椎野: 「回転するもの」と言えば、スロットマシンでも入力できそうだ、というアイディアが出たんです。他に似たものとして、歌番組の順位発表で使われる回転表示板、駅の発着案内板が候補に上がり、最終的に「パタパタ」というアイディアに辿り着きました。
初期のデザイン案
Q: 開発はどのように進めたのですか?
小松: 昨年同様に今年も実機(ハードウェア)とウェブ アプリケーション(ソフトウェア)の両方を作るつもりだったので、実機を山口が、ウェブ アプリを椎野が担当して並行して開発を進めました。今年はウェブ デザイナーの小久保もプロジェクトに参加してくれたので、サイト デザインを中心にビジュアル デザイン、UX デザイン全般を一任しました。
小久保: 各自の役割分担が明確でお互いに依存することが少なかったので、並行開発は簡単でした。JavaScript と CSS3 で書かれた体験アプリをウェブサイトに埋め込むのも一日でできました。
山口: 僕の方ではまず、パタパタの表示機構がどういう仕組みか調べるところから始めました。フラップ(パタパタと回転する板)を取り付けたドラムを正確に回転させることで特定の文字を表示するという、意外と単純なものであることがわかりました。ただ、フラップなどの部品を全部手作りするのは難しかったので既製品のパタパタ時計を分解して再利用しました。
使うボタンは 1 つだけというコンセプトからボタンはなるべく大きく、目立つものを選びました。筐体はパタパタに合わせて一昔前の家電やコンピュータを意識したデザインになっています。
モーターを正確に回転させ、また USB キーボードとして動作させるための電子回路部分は自作しました。これは去年のモールス キーの電子回路にモーターを 1 個制御する機能を付け加えたものになっています。
電子回路部分。緑のボタンを押すとモーターが回ります。
ビデオ撮影前に微調整。
椎野: ユーザーが体験できるウェブ アプリについては昨年の実績があったので、パタパタを回転させるアニメーションさえ実装できれば、あとは何とかなると思ってました。アニメーション GIF を使うアイディアもあったのですが、タイミングの制御が難しそうだったので、素直に CSS3 のアニメーション機能を使うことにしました。CSS3 のアニメーション機能は比較的新しい機能で、当時の Chrome、Firefox、Internet Explorer は最新バージョンでしか満足にサポートされていなかったのが最大の欠点ですね。
プログラム コードは昨年のモールスバージョンを大幅に再利用できると思っていたのですが、入力部分の仕様が細かく食い違っているため、予想よりもスクラッチから実装する部分が多かったです。
体験アプリの最初のデモ。CSS3 アニメーションで回るだけの簡単なもの。
小久保: ひとつの画面で多様なステータスを持つアプリ的性格の強いものだったのでそれらの管理と演出に苦労しました。アプリ的ということで、最初はタスク遂行効率を上げるためにユーザーの自由度を上げるモードレスな UI 設計を考えたのですが、今回の要件はシーンの演出・切り替えによってユーザーを誘導する性格の強いものだと気づいたため、シーンごとにユーザーの選択肢を制限したモーダルな設計に変更しました。
またシェアする URL はハッシュにメッセージをそのまま持たせるだけというシンプルすぎる仕様にしました。これは意図的なもので、ハックを簡単にすることで入力が面倒で難しくてもメッセージ表示の演出だけでも楽しんでもらおうと考えました。
Q: 技術的に工夫したところなど、教えてください。
椎野: 強いて言えば、クロス ブラウザ対応のコストを下げるために
Closure Library
を使い、かな漢字変換に
Google Transliteration API
を使ったくらいでしょうか。少人数かつ短期間で開発するために、あまり凝ったことはせずにシンプルな作りにしたのが一番の工夫ですね。
Q: なるほど。では、デザインで工夫したところがあれば、教えてください。
小久保: 現在の仕事ではリアルな物体の写真を扱う機会があまりありません。ましてや何かの模倣というのは普段はしないことなので、ここぞとばかりに楽しんでやりました。本物の駅の表示機は既に大半が LED 表示のものに置き換わっていて、昔のものでも実際には文字単位でパタパタするものはなかったため、空港の発着表示板のデザインを参考にしたりしました。パネル自体のデザインを CSS3 で行うことも考えたのですが、今回はディティールに凝りたかったので画像で作りました。あと駅っぽい背景の写真は実際に晴れの休日を狙って自分で駅に行って写真を撮りました。サイトを公開してすぐにネットで「これは千駄ヶ谷駅の総武線ホームから新宿方向を写したものだな」と見抜かれたので鉄のみなさんはさすがだなと思いました。
Q: 大変だったことはなんですか?
椎野: ウェブ アプリのデモを作って試しに遊んでみると... かなりストレスを感じるんですよね。想像以上に入力しにくいことこの上ない。少しでも入力しやすくするために、細かい仕様については二転三転させています。
小久保: 最初のアイディアは、ボタンを押すと回転し始めて、ボタンを離すと回転が止まり、文字が入力されるというものだったんですが、狙い通りの文字を入力するのが難しすぎて......
椎野: そこで少しわかり難いですが、ボタンを離した瞬間に文字を入力するのではなく、1 秒半ほど遅れて文字が入力されるようにしました。この 1 秒半の間に再びボタンを押した場合は、文字を入力せずにパタパタを回転させ続けます。
小松: 何を言っているのかわかり難いと思いますが、この仕組みがあると「ちょん、ちょん」と短くボタンを押していくことで、パタパタを 1 枚ずつゆっくりと回すことができるようになるんです。この「ちょん、ちょん」入力を使うと、比較的思い通りの入力ができます。
山口: アイディアの面白さと、遊びやすさのバランスをとるのは難しいですねぇ... 去年は入力が難しすぎたので、今年は改善したかったのですが... 今年も結局難しかったですね。(苦笑)
小松: 今年はアイディア出しもたいへん苦労しました。ドラム キーボードからモールスへの流れは、自然で思いつきやすかったんですけどねぇ。
山口: キーの数が少なくて、何も覚えなくても使える、という観点から「毛筆入力」というアイディアもあったんですが、ペン入力と同じで実用的すぎるという欠点(?)からボツになりました。
椎野: 何時間もミーティングルームに篭ってのブレインストーミングは、思い出したくないですね......
Q: 最後の追い込みが大変だったと聞いていますが。。。
椎野: しめきりこわい... こわいよ...。いろいろなことがギリギリでしたが、隠しコマンドは今年も実装しました。山手線やその他いくつかの主要路線の駅名や特急、急行などの列車種別を入力すると駅の発車メロディーが流れたり、ちょっと特別な動きをするんです。一部の方には気付いていただけたようで嬉しい限りです。
三浦: 効果音の作成も苦労しました。やはり、パタパタというからには、音がしっかりパタパタしている必要があります。そこで、パタという音を作るために、いろいろな種類のカードを落としたり、弾いたりして数百種類の音をサンプリングしました。その中でイメージにあったものにフィルターをかけて加工していくという感じですね。1 文字ずつ回す場合と、一斉に回り出す場合ではそれぞれ気持ちいい音となるポイントが少し変わるので、そこも微妙に調整しています。発車メロディーは駅の雑踏を思い出しながら、できるだけ駅の雰囲気が出るように、超適当につくりました。
小久保: こ、こわいよ...。最後の最後で休日なのになぜかオフィスにいた人を捕まえてユーザー テストをしてみたところ、やはり操作方法を理解するのが難しそうだ、という問題が発覚したので急遽ヘルプを実装したりしました。まあそれが必要かもしれないというのはある程度予測はしていましたが、やはり説明なしで理解してもらえるのが理想なのでちょっと悔しいですね。
怖い思いもしたけれど、ローンチできて本当に良かった...
Q: パタパタバージョンを自作してみたいという方のため、基板の回路がオープンソース化されたとのこと。詳細を教えてください。
山口: こちらに、2012 年のモールスバージョンと共にソースコードを公開してあります。
https://code.google.com/p/mozc-morse/
山口: パタパタ装置の設計図も一緒に公開できると良かったのですが、今回撮影用に作った装置には既製品の部品を流用したのでその部分はありません。電子回路部分とファームウェア部分のみ自作したので、この部分を公開しています。ただ、パタパタ装置が用意できない場合でも適当なモーターを用意していただければ写真のようにして使うことができます。
電子回路とステッピングモーターを組み合わせてテストしているところ。
USB ケーブルで Android に接続して入力している。
ステッピングモーターにはパタパタの代わりに円盤を付けている。
Q: パタパタとキー入力はどうやって連動させているのでしょうか?
山口: ドラムを回すために、写真に写っているステッピングモーターを使っています。これは複数のコイルに順次通電することで少しずつ、例えば 1 周の 200 分の 1 ずつ回転させ、正確に止めることのできるモーターです。電子工作の入門書などでよく取り上げられていますので、見たことのある方もおられるかもしれません。プログラムは基準位置からどれだけ回転させたかを常に数えていて、今どの文字が表示されているかを把握しています。ボタンを離してドラムが停止すると、この文字が入力されます。
Q: 実機の開発で苦労したことはなんですか?
山口: ファームウェアを限られた容量に収めるのに苦労しました。開発期間の都合で去年のモールスキーと同じワンチップマイコンを使ったため、ROM の容量が 2,048 byteしかなかったのです。現在実機に載っているプログラムで 2,028 byte あり、ほぼぎりぎりの大きさです。実機をかな入力ではなくローマ字入力にしているのもこれがひとつの理由です。平仮名よりも文字数の少ない英数字にすることで容量を節約しています。
Q: 最後に Google 日本語入力スペシャルバージョンの開発について、今後の展望を教えてください。
小松:
こちらのビデオ
の後半に登場するメガネ バージョンも鋭意開発中です(キリッ)。ただ、早くも大きな課題が見つかっていまして... パタパタの風でドライアイになってしまうんですね。目薬を持ち歩かなくてはならないとなると、せっかくの携帯性が損なわれてしまいます。この部分さえうまく解決できれば、実用化は近いと考えています。
開発中のメガネ バージョン。
小久保: とりあえずあの試作機はとんでもなく重いので、軽量化のうえ年内にはなんとか実用化の目処をつけたいですね、はい。
重いメガネ バージョンを装着中の小久保。本当に重い。とんでもなく重い。
Q: 皆さん、お忙しい中ありがとうございました!
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#DevFest21
1
#DevFest22
1
#DevFest23
1
#hack4jp
3
11 weeks of Android
2
A MESSAGE FROM OUR CEO
1
A/B Testing
1
A4A
4
Accelerator
6
Accessibility
1
accuracy
1
Actions on Google
16
Activation Atlas
1
address validation API
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
73
Ads API
135
ads query language
2
ads scripts
2
ads search
1
advanced markers
1
Advanced Protection Program
3
AdWords API
25
adwords scripts
2
aerial view api
1
Agency
1
AI
20
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
120
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
400
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
android api
1
Android App Bundle
1
Android App Development
23
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
14
Android Developer Story
4
Android Developers
13
Android Enterprise
6
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
Android Ready SE Alliance
1
android security
5
Android Security Year in Review
1
Android StrongBox
1
Android Studio
47
Android Studio 4.1
1
android study jam
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Announcements
2
Anthos
2
antmicro
1
AoG
1
aosp
1
API
28
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app check
1
app engine
24
App Indexing
7
App Invites
6
App Maker
2
App modernization
1
AppCompat
2
Apps Flutter eBay
1
Apps Script
12
AppSheet
1
aprilfool
4
AR
3
Architecture Components
7
ARCore
3
ArtTech
1
asset-based extensions
2
assets
1
Associate Android Developer Certificate
1
Attribution Reporting
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
5
AutoML
1
Autotrack
2
award
1
Awareness API
1
basemap
1
basic-card
1
Beacons
6
bento
2
BERT
1
Best Practices
1
beta
4
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
bootcamp
1
Brillo
1
Brotli
2
Budou
1
budoux
1
Buildbetterapps
2
Business and Leadership
1
C++
1
Calendar
3
call ads
1
campaign
2
campaignsharedset
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Studies
1
Case Study
3
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
8
changestatus
1
chrome
261
chrome 98
1
Chrome Apps
1
Chrome Custom Tab
4
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
10
Chrome Root Program
1
Chrome Root Store
1
Chrome Tech Talk Night
4
chrome103
1
chrome104
1
chrome108
1
chrome90
1
Chromebook
5
Chromecast
7
chromewebstore
9
Chromium
20
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
29
Cloud AI Platform
2
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
cloud messaging
1
Cloud ML Summit
1
Cloud Next
19
Cloud OnAir
5
Cloud OnBoard
4
Cloud PubSub
1
Cloud Run
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Common Criteria
1
Community
7
compatibility
1
Compose
1
compose camp
1
compute engine
3
consent
1
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
conversion
1
Cookie
10
Coral
3
core web vitals
1
COVID-19
2
Crash Reporting
2
Crashlytics
3
cryptography
1
Custom Element
1
Custom Model
1
CWV
2
dark theme
1
Dart
2
data retention
1
DataCenter
1
datacloudsummit
1
Daydream
4
deck.gl
2
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
15
Developer Console
4
Developer Library
1
Developer Preview
6
Developer Relations
3
Developer Review
1
Developer Student Club
1
DEVELOPERS
1
Developers Story
4
DevFest
12
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
2
Digital Asset Links
1
Digital Goods API
1
directions api
1
DirectShare
1
Discover
1
distance matrix api
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DSA
1
DSC
1
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
encoder
1
Encryption
1
English
2
environment api
1
Envoy
1
error
1
ES2015
1
ES2016
1
ES6
2
ES7
1
eta
1
Event
7
events
3
Explore
1
extensions
1
external
1
Featured
25
Feed
2
feed-based extensions
3
feeds
1
FIDO
7
filter
1
final release
1
Firebase
123
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
firebase for games
1
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
firebase summit
1
Flash
1
FLEDGE
1
FLoC
2
Flutter
8
Flutter App Development
1
flutter3
1
font
3
fraud
1
G Suite
19
game
43
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Game Development
1
gaming
1
gaql
8
Gboard
2
gc_datacloud
1
GCCN
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
22
GDG Cloud
1
gdsc
4
Gemini
5
Gemma
1
generative AI
4
Geo
55
Gingerbread
1
GLIDE
5
global foundries
1
Gmail
6
Gmail API
3
Go
1
Go Checksum Database
1
golang
5
goo.gl
1
Google
8
Google account
1
Google Analytics
4
Google API
2
Google Apps
14
Google Apps Script
4
Google Assistant
13
Google Assistant SDK
2
Google Binary Transparency
1
Google Cast
8
Google Chat
3
Google Cloud
49
Google Cloud Day
10
google cloud innovators
2
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
9
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
google cloud next
4
google cloud next tokyo
3
Google Cloud Platform
16
Google Code-in
1
Google Dev Library
1
Google Developer Experts
2
google developer groups
1
google developer student clubs
1
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
3
Google for Mobile
2
Google for Startups
8
Google for Work
1
Google I/O
26
Google I/O 2024
3
Google Identity Services
6
Google Impact Challenge
1
Google Maps
72
Google Maps Platform
91
Google Meet
1
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
6
Google Photo
1
Google Play
148
Google Play App Safety
1
Google Play Billing
1
Google Play Console
15
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
8
Google Sheets API
3
Google Sign-In
17
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Tensor
1
Google Trust Services
3
Google マップ
4
google_ads_api_v6
1
Google+
2
Googleapps
10
GoogleCloud
5
GoogleCloudDay
5
GoogleCloudInside
1
googlecloudlearn
1
googlecloudnext
2
GoogleGames
1
GoogleI/O
31
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
Growth Academy
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
handson
1
Hangouts Chat
3
hardware
2
Hosting
3
hotel
1
How-To Guide
1
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
19
I/O Extended
7
ID Token
1
Identity
18
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
Imagen 2
1
IME
12
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Industry Trends
1
Inevitable ja Night
30
Influence
1
innovators hive
2
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
22
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
6
Japanese Developer
1
Japanese Input
1
java
1
JavaScript
13
Jetpack
5
Jetpack Compose
6
Journeys
1
K-12
1
Kaggle
1
Key Transparency
1
Knowledge Graph
1
Kotlin
25
Kotlin Android Extensions
1
kotlin api
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
4
l10n
8
latest
18
latest news
1
launch
1
LaunchPad
2
Learn
2
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
32
MAD Skills
2
MADSkills
2
Maker Faire Tokyo
1
maps compose
1
maps embed api
1
Maps JavaScript API
5
maps on air
1
maps sdk
2
maps transportation
1
Marshmallow
10
Material
1
Material Design
31
MDL
2
MDN
1
MediaPipe
1
Messaging
1
metrics
1
MIDI
2
migration
1
mikan
1
Mixed Contents
4
ML
3
ML Kit
12
mlops
1
Mobile
16
Mobile Bootcamp
4
mobile optimized maps
1
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
4
Nexus
2
Nexus S
1
NFC
1
NIST
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
13
NPAPI
2
NPN
1
oauth
17
officehour
1
One Tap
2
online security
2
open silicon
2
open source
9
OpenAI
1
opencensus
1
opencloudsummit
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
20
OpenTitan
1
Optimization
1
OSV
1
p-max
3
Page Experience
1
passkey
3
Password Manager
4
Payment
8
Payment Handler API
1
Payment Request API
2
PDF
1
PEM
33
people
2
People API
3
Performance
16
Performance budget
1
performance max
1
Performance Monitoring
1
performance report
1
permissions
1
personalization
1
PersonFinder
1
Phishing
2
phone
1
photorealistic 3d tiles
1
Physical Web
3
Pi
1
Pixel
4
Place Picker
1
placements
1
places api
1
places SDK
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Player Analytics
4
Playtime 2017
1
Policy
8
policy compliance
2
policy violations
2
polylines
1
Polymer
7
pricing
1
privacy
15
Privacy Sandbox
22
Progressive Web Apps
14
project hosting
1
Promise
2
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
4
Python
3
query builder
8
query validator
1
QUIC
2
quick builder
1
quick start widget
1
QWIKLABS
3
RAIL
1
raspberry pi
1
React
1
React Native
2
reactive programming
1
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
7
Remote Config
4
Remote Display API
1
Reporting API
1
Requirements
1
Resonance Audio
1
resource type
1
Rewarded Video Ads
2
RKP
1
rmf
2
routes api
3
RSS
1
Run on OS Login
1
Runtime Permission
1
Rust
2
Safe Browsing
4
safety
1
Sample Code
2
Santa Tracker
1
SBOM
1
schedule
1
schema
2
schema.org
1
Scorecards
1
script
2
SDG
1
sdk
1
search central
1
secur
1
Secure Element
1
security
92
selfie
1
Service Worker
4
SHA-1
1
Sigstore
4
silicon
3
Site Isolation
1
sketchup
1
skywater
1
SLSA
1
smart displays
1
smart home
1
smart shopping campaign
1
SmartLock for Passwords
5
social
4
Social Good
1
Social Media
1
software development
1
solution challenge
2
Solve
1
SPDY
3
speak2tweet
1
speaker
1
Spectre
2
speedometer
1
Spreadsheet
3
ssc
1
ssd
1
SSR
1
stable release
1
startup
7
Storage
3
store sales direct
1
story
2
streetview
3
Study Jams
12
subscriptions
5
sunset
10
Swift
2
SwiftShader
1
Symantec
1
tag
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
43
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
The Fast and the Curious
13
Titan M2
1
Titan Security Key
1
TLS
4
Topics
1
ToS
1
trace
1
Transliteration
1
Transparency
1
Trust
1
Trusted Web Activity
1
Trusty OS
1
TrustZone
1
Twitter
1
UA-CH
1
Udacity
20
Unity
3
update
1
usecase
1
User Agent string
2
UX
5
v10
2
v10.1
1
v11
1
v13
1
v15
1
v3
1
v4
1
v5
1
v6.1
1
v7
2
V8
5
v9
1
valuetrack
1
Verifiable Design
1
vertex ai
1
Vision AI
1
VP9
1
VR
11
Vulkan
2
wafer
1
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
38
Web Animations
1
Web Components
9
Web Manifest
2
Web Packaging
3
Web Stories
3
Web Story
3
Web Vitals
7
web.dev
1
WebAssembly
6
WebAuthn
1
WebGL
5
Webhook
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Windows
1
Women in Gaming
1
Women Techmakers
1
Women Techmakers Scholars Program
1
WomenDeveloperAcademy
1
Wordpress
2
workmanager
1
WTM
8
Xcode
1
YouTube
18
YouTube API
1
youtube select
1
インタビュー
1
コードサンプル
1
サプライ チェーン
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2024
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2023
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2022
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2021
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2020
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2019
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2018
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
2014
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2013
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2012
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2011
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2010
12月
11月
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"