Tuesday, February 25, 2020

DroidKaigi 2020 中止のうらばなし

既に公表されているとおり、2/20,21の DroidKaigi 2020は中止になってしまいました。
実行委員のひとりとして多少なりともDroidKaigi 2020の準備に関わった立場から、今回の中止に関して感じたことを簡単に備忘も兼ねて書いておきます。

私のDroidKaigiでの立場は、ボランティアスタッフとしての実行委員であり、中止決定や予算執行に関して何かの決定権を持っている訳ではありません。

1月中旬

この頃、新型コロナウイルスが中国で脅威になりつつあることは盛んに報道されていました。しかしまだ日本国内に感染者はいませんでした。
DroidKaigiには海外からの参加者もおり、何かしらの影響があるかもしれないと少し感じていました。具体的に何が起きるかは想像もつきませんでした。

1月27日

1/30のUnity道場を中止するという告知が流れました。この日から私はDroidKaigi 2020でも対応が必要だということを考えはじめました。
日本政府が、武漢にいる在留邦人を帰国させるチャーター便の運行を始めたのが1/28です。

1月29日

実行委員会の定例会がありました。私は不参加だったのですが「中止の可能性もありえる」と議事録に記載されています。

1月30日

武漢から第1便のチャーター便で帰国した方の中に感染者がいることが判明し、単なる対岸の火事ではない深刻な事態であることが少しずつわかりはじめした。
DroidKaigi 2020のチケットは販売時に「返金不可」と明示していましたが、中止は想定していなかったため、中止時のチケットの取り扱いについては何も決めていませんでした。
そこで、「参加者が不安にならないよう、チケットの返金を可能にしよう」と提案しました。

中止の可能性も現実味を及びてきたので、中止の可能性についても含めて公表することになりました。海外を含め遠方から参加する方が少なくないため、中止の可能性については早めに開示した方がいいと考えていました。
中止決定のデッドラインは開催前日の2/19としました。この日は会場設営の予定日であり、設営前に中止するかどうか決める必要があったためです。

1月31日

きのう合意した内容が公表されました。
早速チケット販売に利用したDoorKeeperから返金のリクエスト通知が届きはじめました。しかし1日あたり数件程度で、そんなに多いものではありませんでした。DoorKeeperは自動で返金処理ができないため、手の空いているスタッフが1件ずつ手動で対応していました。

20日以上も前に中止の可能性を開示したため、Twitterなどで見ている限りでは、おおむね好意的な反応をいただいたと思っています。

中止の可能性については発表しましたが、中止が決まった訳ではないので各種準備はこれまでどおり続けられていました。


2月5日

中止の可能性について開示してから約1週間が経ち、他のイベントの中止情報が少しずつですが流れてくるようになりました。講演者からのキャンセル連絡も届きはじめました。
報道によれば中国のみならず日本を含めた各国で感染者数は増大する一方で、事態が改善するよな傾向は一向に見えませんでした。
私はこの頃から「このまま事態が推移すればDroidKaigi 2020は中止するしかない」と考えるようになりました。しかし、まだそのことは誰にも言いませんでした。
他のスタッフがどう考えていたのかわかりませんが、準備は着々と進められていました。


2月7日

当日のスタッフの作業割り当てが決まりました。
私は心の中で、「中止の可能性は50%」と考えていました。
中止するかどうかの具体的な検討はまだ何もされていませんでしたが、他のイベントの中止情報は収集して、実行委員会内部で共有していました。海外参加者のキャンセルの可能性などは十分にありえたので、対応方針が決められました。

この頃、会場側の関連業者には「中止の可能性がある」という連絡を入れていたそうです。私は後日知りました。

2月12日

実行委員会の定例会がありました。本番1週間前で、最後の定例会です。中止に関する議論はされましたが、具体的な決定はありませんでした。

2月13日

2/24-27にバルセロナで開催予定であったMWCの中止が発表されました。MWCはモバイル業界で世界最大規模の展示会です。DroidKaigiと直接の関連は何もありませんが、同じ業界のイベントなので注目はしていました。出典企業のキャンセルも数日前から相次いでいました。しかし展示会自体が中止になるとは全く想定していなかったので驚きました。

実行委員の中から「アフターパーティを中止してはどうか」という案が出ました。
しかし、チケット代に含まれるアフターパーティ費用の割合を算出するのが難しかったのと、DoorKeeperに一部返金の機能がないことがわかり、この案は流れました。
講演者のキャンセルで中止になったセッションと当日の対応方針については公表することとしました。(実際には翌日に公開されました)


2月14日

2/27-3/1に開催予定されていたCP+2020が中止になりました。日本国内の大規模なイベントとしては初めての中止発表ではなかったかと思います。

2月15日

日本国内で、屋形船の宴会で感染が発生したことがわかりました。
これはMWCの中止決定に続いてダブルパンチでした。
多くの人が集まって会食をすることで、感染リスクが高まることが判明したのです。

これまでDroidKaigiは昼食やパーティなど、飲食関係のサービスに力を入れてきました。理由は単純で、そうした方が来場者の満足度が高まる傾向が知られているからです。

こんな状況下で、DroidKaigiを開催する意味はあるのだろうか…

中止すれば今までの準備は全てパアですし、巨額のキャンセル費用が発生するのも目に見えています。DroidKaigiが興業中止保険に加入していないことは知っていましたが、興行中止保険に加入していたとしても今回のケースでは役に立たないこともわかっていました。

ISSCCのprogram committeeをされている竹内先生のnoteは考えさせられました。
DroidKaigiにも少なからず海外からの参加者がいます。
自発的なキャンセルがなくても、彼らが日本へ渡航することによって影響を受ける可能性は大いに考えられました。

当日まであと1週間に迫り、開催準備は順調に進んでいました。

2月16日

前夜、私は一晩考えました。
考えた結果「正しいかどうかはわからないが、DroidKaigi 2020はもう中止した方がいいだろう」と決めました。
中止した方がいいと自信を持っていた訳ではありませんが、心の中では腹をくくりました。
この日まで、実行委員の間で中止の可能性についての話題は何度も出ていましたが、「中止しよう」とはっきりと言い出したスタッフはまだ誰もいませんでした。

そう決めたら、私はすぐに実行委員会のSlackに中止の提案を書き込みました。朝の6時49分でした。

私の提案を受けて、午前11時に緊急の実行委員会の招集がかかりました。午後1時からGoogleハングアウトで会議が始まりました。
確か25人くらい参加したと思います。
1時間ほど議論しました。色々な意見が出ました。中止に反対する意見も少なからずありました。

最終的には次のような事情を考慮した上で、中止が決まりました。

  • 昨今の状況において都内における新型コロナウイルス保菌者との接触率が高まりが予見され、当日の十分な安全確保の難しさが見られること
  • 関連業界の各社において集会への参加の自粛要請が発表され、参加者をはじめ講演者およびスタッフの当日参加が難しくなってきていること
  • 講演者のキャンセル率が一定を超え、今後も開催までに高まることが予想されること


14時に、次の短いステートメントが公開されました。


2月16日 14時00分 更新
DroidKaigi 代表理事の mhidakaです。
大変残念ですが昨今の新型コロナウイルス感染症に関わる状況の変化を鑑み、現時点をもってDroidKaigi 2020の中止を発表いたします。
2月20日-21日の開催は中止となります。
今後の代替開催の実現可能性を含め延期の対応についてはDroidKaigi運営委員会にて引き続き検討を行っております。詳細が決まり次第ご案内します。
DroidKaigi 2020は国際会議として相応しい400以上のセッション応募から選りすぐられた80のセッションと合計1400人に及ぶ来場者・講演者が集うカンファレンスです。誠に遺憾ではありますが来場者や講演者、イベントを支えるボランティアスタッフ、みなさまの健康を第一に考えた結果、中止を決定いたしました。
DroidKaigiは今後もAndroid開発の知見を共有する価値を提供していきたいと考えています。準備のために尽力いただいた皆様に改めて御礼を申し上げます。決定にご理解を頂けますと幸いです。
販売済みのチケットの返金については本記事で予め公開したとおり対応させていただきます。
以上

最後に

スタッフとしての個人の体験と感想を書きました。内容は主観的なものを多く含んでおり、事実を正確に反映していない可能性があります。
DroidKaigi 2020については、各種キャンセルの手続きなど、まだ現在進行中の事象が数多くあります。いちスタッフでしかない私が知らない事実もある筈です。全てを明らかにすることは不可能です。
しかし千人規模の大きなイベントに関わる事象であり、多少なりとも情報を共有した方がいいと考えて公開することにしました。少しでも関係者やコミュニティ活動に関わる皆様のご参考になればと思います。

関連記事

DroidKaigi 2016 うらばなし

Wednesday, February 7, 2018

DroidKaigi 2018の事前公開資料たち

DroidKaigi 2018の事前公開された資料の一覧です。

全部追えている訳ではないし内容をチェックしている訳でもありません。実際に講演で使われている資料とは異なる可能性も十分に考えられます。

ソースはtwitter

私が発見した順にソートされています


Sunday, February 21, 2016

DroidKaigi 2016 うらばなし

 2/18, 19の2日間で、DroidKaigi 2016の2日間が終わりました。
 講演された皆様からも聴講された皆様からも大変にご好評だったようです。立ち上げから関わった者としては嬉しい限りです。

 私はDroidKaigi 2016は準備を手伝っただけで、当日は参加していなかったため内容の善し悪しについて何かを言うことはできません。
 ここでは裏方の立場からDroidKaigi 2016について感じたことを、簡単に備忘も兼ねて書いておきます。

会場


  「平日2日間・終日・数百名」の規模になると、会場が決まらなくては何も始まりません。会場探しを始めたのが8月頃で複数の候補を当たってみたものの、日時や場所など、こちらの希望とマッチングが取れる会場は最終的には1か所しかありませんでした。他の会場候補・日程候補と比較検討を行い、会場と日時が確定したのは10月後半です。
 他の開発者向けイベントなどと可能な限り日程が重ならないように調整したのですが、全てを避けることは難しくデブサミとは見事にかぶってしまいました。
 なお会場の選定及び予約・支払い等の諸手続きについては、東京工業大学の首藤一幸先生及び事務のMさんに多大なるご協力をいただきました。

予算


 会場が確定したら、次は費用です。
 会場だけが決まった時点では中味をどのようなイベントにするか何も決まっていなかったので、予算計画も白紙でした。ちなみに前回のDroidKaigi (以下DroidKaigi 2015)は会場や昼食は全てスポンサーさんが現物で提供してくれたため、収入も支出も大した金額にはなりませんでした。チケットを無料にしたところ10分で完売してしまったのでDroidKaigi 2016ではチケットを有料とすることにしましたが、何枚売れるのか全く見当がつきませんでした。
 ただDroidKaigi 2015の感触から、スポンサーが付いてくれればそれなりの規模のイベントは開催できるだろうという見込みはありました。また私は以前日本Androidの会にNPO法人の社員として参加していたこともあるので、Android Bazaar and Conferenceの収支の情報もある程度把握していました。その時の経験は今回とても役に立ちました1
 また、まだ計画がほぼ白紙なのにも関わらずA社さんがスポンサーとして一番に手を挙げて下さったので、その後のスポンサー探しが順調に進みました。これで収入の見込みが立ち、チケット代の売れ行きが芳しくなかった場合でも「(個人では負担できない程の)大きな赤字は出ないだろう」という確信を持つことができました。ここでも裏で多くの方が動いて下さいました。
 結果としてはチケットはほぼ完売し予算確保の懸念は杞憂であったことがわかりましたが、それは終わった今だからこそ言えることです。当時は薄氷を渡る思いで資金調達に走っていました。
 なお東京工業大学は会場費の支払いをかなり直前まで待ってくれましたので、その点について非常に助かりました。民間のイベント会場では、こんな離れ技はできなかったはずです。2

体制


 予算の目処が立ったら、次は体制作りです。
 DroidKaigi 2015の実行委員会には人数こそ多くないものの、頼りがいのある強力なメンバーが揃っていました。
 しかし開催時期が変わると「本業が忙しい」などの理由でなかなか十分な人数が集まりません。規模を拡大することもあり、スタッフも新しく公募することにしました。スタッフの公募はCFPと同時に行いました。
 これにより人数は確保できたものの、他のメンバーと面識が全くない人も少なからずいて、コミュニケーション体制作りが急務となりました。

 DroidKaigi 2015の時はIssueをGitHubで管理し、Slackで会話する、という簡単な体制は作っていました。ドキュメント類はGoogle Docsで管理していました。これらの方針はDroidKaigi 2016でも踏襲しました。しかし、人数が増えた結果、

  • Slack/GitHub/Googleの各アカウント名がバラバラで、Slackの○○さんとGitHubの××さんが同一人物かどうかわからない
  • 2015でスタッフだった△△さんは2016でもスタッフとして参加するのかわからない

といった、ごく基本的な情報すら共有できていない事態が発生しはじめたのです。この時期は冬コミの直前で、実行委員長の @mhidakaそちらの準備に忙しく実行委員会の立ち上げにまで十分手が回っていない状態でした。

 そのため急遽、私が実行委員名簿を作成して各サイトのアカウントを全員に記入してもらい、

  • 個人の特定は原則としてSlackアカウントを使う
  • Slack/GitHub/Googleの全てのアカウントを共有できない人は、実行委員会から外れてもらう
  • 自分がスタッフであることを公式サイトに掲載することを必須とする

というような基本的な共通ルールをいくつか定めました。
 こういう作業はプロジェクトマネジメントの視点では必須で、当たり前のことのように思えます。しかし、いざ新しく組織を作るときになると誰もやりたがらなったりするのです。また後から新しく入ってもらったばかりで右も左もわからないスタッフにルール作りを任せてしまうのも、ちょっと無理がありました。

 後述する法人の立ち上げも色々と手続きが必要で、人手は足りたものの「課題を整理して作業を担当者に割り当てる」というマネジメントの基本が思うように進まず、組織としてはなかなか動き始めませんでした。
 こういった問題を解決するためFace to faceのミーティングを不定期に開催するのと合わせて、毎週土曜日にSlackで進捗確認のミーティングを行うことにしました。このあたりは主に @punchdrunker さんが仕切ってくれました。Face to faceのミーティングにはGoogle Hangoutを併用しました。Jabraのスピーカーホンは欠かせないアイテムです。
 私がもっとも焦りを感じていたのは、このような事が次々と起きていた11月から12月にかけての時期でした。

法人


 会場の予約やスポンサーの協賛費用の受け取りを個人名義で全てこなすのは難しいことでした。そのため、新しく法人を作ることになりました。法人は基本的にはお金の管理を行うだけで、実行委員会とは別の組織としました。
 これは割と重要なところで、実行委員会を法人組織の一部として定義してしまうと色々な法律などの規定に縛られてしまいます。
 法人の定款に組織の実態を定義することで透明性を高める方法はありますが、DroidKaigiでは柔軟性を優先しました。
 また法人と一口にいっても株式会社など、いくつかの形体が考えられます。DroidKaigiでは原則として実行委員に報酬を払うことはなく、また営利目的で活動している訳でもないため非営利型の法人を新しく作ることにしました。

 非営利型の法人もいくつかの種類があります。例えば日本Androidの会はNPO法人です。しかしDroidKaigiでは一般社団法人を作りました。
 一般社団法人とNPO法人にはいつくかの違いがありますが、法律的な難しい話を無視してぶっちゃけて言うと、一般社団法人の方がNPO法人よりも組織としてコンパクトな法人を作ることが可能です。一方でNPO法人は、透明性が高い組織を作れます。
 DroidKaigiは柔軟な体制作りを目標としていたので、コンパクトな法人の方が都合が何かと都合がよくなります。従って一般社団法人を作ることにしたのです。
 ただ、私自身は本業との兼ね合いで法人の役員や社員に就任しませんでした。その役目は他のスタッフの方々に任せました。そのため私は予算の執行権限などは何も持っていません。
 またコンパクトな一般社団法人にしても法務局への登記や非営利化のための臨時社員総会など必要最低限の手続きは避けられず、それなりの手間がかかっています。

キャッシュフローと経費精算


 会社など金銭がからむ組織を運営(経営)するためには、予算計画と同時にキャッシュフローを常に維持する必要があります。いわゆる資金繰りというやつです。これは経費精算問題と直結します。

 DroidKaigiは柔軟な組織を目指したので、低額の経費などは一定の範囲内で担当者に裁量権を与え、後付けで法人の役員が承認するような精算のルールを作りました。こういう地味な作業もおろそかにすると、後でとんでもない事態に発展したりするので、わりと重要だったりします。

 精算ルールを作ったおかげで収支の見込みも立てやすくなりました。
「費用はいくらまで使えるのか」
「スポンサーを何社集めればよいか」
というような計画が立てられるようになったのです。
 本来なら先に予算計画があり、それを目指してチケット代を設定してスポンサーを集めるべきです。
 しかしDroidKaigi2016 は有料イベントとしての開催実績がなく、スポンサーさんが何社参加してくれるのか見当もつきませんでした。そこで最初は最小限の費用で開催できるような小さなイベントの計画を立て、後付けで配布物や食事・懇親会などを追加していきました。
 しかし法人は立ち上げたばかりで資本金もなく、銀行口座の残高はゼロ円。スポンサーさんも数社から協賛の約束は取り付けたものの基本的に後払いなので、キャッシュフローも綱渡り。
「立ち上げたばかりの法人が黒字倒産直前」
の状態がしばらく続きました。
「万一のときは損失は自分達でかぶろう」
というような話が法人役員の内部であったと、後で聞きました。活動実績がない法人に対しては、銀行は何の役にも立ってくれません。それどころか口座開設するだけでも銀行側の審査がなかなか通らず、大変でした。3

 一時的に立替してくれそうな人がいれば劣後債を発行するなどの手がありましたが、万が一にも返済不可能になれば債権者たるスタッフに影響が出るのは避けられません。そうでなくても、発行などの諸手続きが面倒くさくなります。借金は最後の奥の手として取っておくことにしていました。
 そうこうしているうちにB社さんがこちらの事情を汲んで下さり、イベント開催前の協賛金の支払いに応じてくれることになりました。これで奥の手を使わずにキャッシュフローを改善することが可能になりました。ここでも多くの方々が裏で動いてくれました。

CFPと海外対応


CFPによる講演募集はDroidKaigi 2015から引き続いて行いました。
「招待講演以外の講演は全て公募し、スタッフが厳正に選定する」
のはDroidKaigiの大原則でもあります。
 ただ私には今まで書いたような事務的な作業がたくさんあったので、CFP関係の仕事は全部他のスタッフに任せていました。
 DroidKaigi 2015では私が選定のルールを作って講演を選定する全スタッフの間で共有していたのですが、DroidKaigi 2016ではそういう情報が事前に全てのスタッフに伝わらなかったようです。
 恣意的な選定が行われたような事はなかったはずですが、私自身も含めて選定時のルールや経緯などを確認する方法がエビデンスとして十分に残っているとは言い難い結果になってしまいました。ここは反省点のひとつとなります。ルールを決めて議事録などに残しておかないと、後から選定結果に疑義が出たときに、「我々の選定結果は正統である」と外部に対して説明するのが難しくなります。

 またCFPの英語版も作りました。 @hotchemi さんが AndoidStudyGroupに登録してみたところかなりの応募があり、そのうちのいくつかは採用となりました。
 ただCFPだけ英語版を作ればいいという話では済まず、影響は色々なところに出ました。例えばS222講義室をA会場という名前にしたのですが、この会場名にもRoom Aという英語訳が必要となりました。講演者向けに送る案内メールや公式アプリ、当日の掲示や受付スタッフの案内などで、全て日本語と英語の会場名が一致しないと日本語がわからない講演者は混乱してしまいます。こういうルールも当たり前のように思えて、つい見過ごしがちです。命名規則を最初に決めないとプロジェクトが迷走するのは、アプリ開発でもイベント開催でも同じです。

 ところでDroidKaigi 2016では講演当日にどうしても都合がつかなくなってしまった講演者の方がいて、その時間はNo Showとなってしまいました。そこで急遽、その時間を使ってスタッフによるFireSide Chatを行うことになったようです
 実はこれは苦肉の策で、こういう事態に備えて秘かに計画していたものでした。講演はCFPで公募しており、不採用せざるを得なかった方が多数います。それなのに「No Showが発生したから」という理由だけで、選定時に採用しなかった講演者を代役として立てることはできません。またスタッフの中にもCFPに応募して採用されている人が複数がいるので、「スタッフが代役で講演する」というのもNGです。
 そこで「万が一No Showが発生したときは、空き時間に講演ではない突発イベントなら行ってもよい」ということをスタッフ内で申し合わせておいたのです。

当日へ向けて


 こういう細かい所が決まった年末頃には体制も確定してきて「主要なタスクに担当者がいない」というような事態も解決されました。当日までにプロジェクトを無事に進められる見込みが立ってきました。
 一方で、私自身の本業が年明け頃から忙しくなる事が見えてきました。そこで、自分に割り当てられていた具体的な準備作業を少しずつ他のスタッフの皆さんに任せるようにしました。私自身のタスクを減らすように仕向けたのです。
 渡された側はさぞ大変だったと思いますが、私としては安心して年を越せる気分になりました。1月中旬に行った開催1か月前スタッフミーティングでは大きな議題も出尽くし、「あとは実際に担当者が動いてみて実行上の問題を見つけ、解決するだけ」の状態にほぼ近づいて行きました。
 新しく募集したスタッフには私が面識がなかった人が多く、当初不安もありました。しかし、いざ体制を整えてみると、みなモチベーションが高く優秀な人たちばかりであることもわかりました。大半のスタッフは第一線のエンジニアであり、時間を上手くやりくりして自分に割り当てられたタスクをこなしていました。その様子を見て安心して任せてよいと確信を持ちました。
 私は運営のためのルールをいくつも作った訳ですが、それらがルールを必要としているスタッフに理解され、かつ実際に活用されていました。細かな問題はたくさんありましたが、それらは解決の見込みがあるものばかりでした。少なくとも私はそう感じていました。
 2月に入ると私の手元に残った「やるべき作業」はほとんどなくなりました。プレス対応マニュアルを作るのが事実上の最後の仕事となりました。GitHub上でこのIssueをcloseしたのはちょうど開催2週間前でした。
 ここから先は、私の物語ではなくなります。

最後に


 当日は懇親会以外の会場に一歩も入らなかった私がDroidKaigi 2016について何かを書くのは気が引けます。一方で私でないと書けないような情報もいくつかありました。同様のイベントを企画する人がもしいれば、何かの参考になればと思います。

 DroidKaigi 2016を開催するにあたっては実行委員長の @mhidaka を始めとするスタッフや講演者を始め、多くの方々の協力がありました。このブログで紹介したのは、ほんの一部の方々だけです。この場を借りて全ての関係者の皆様にお礼を申し上げます。



1 なお日本Androidの会会長の嶋さんには裏でこっそりとご協力をいただきました。
2 他の国公立大学で同じような事ができるのかどうか、私は知りません。
3 全くの余談ですが、代表の @mhidaka は某有名ロックフェスティバルの主催者と同姓同名で、銀行の審査で担当者に間違えられそうになったそうです。

Tuesday, November 10, 2015

Intentの歴史を変えるApp LinkingとGoogle Digital Asset Links

前回のブログで書いたように、CDD 6.0では5.1に比べて色々と変更や追加があります。

特に気になるのは 3.2.3.2 節の "Intent Resolution" です。この節のタイトルは、CDD 5.1までは"Intent Override"でした。
IntentはAndroidというOSを特徴づける重要な基本機能ですが、そのIntentの基本部分をこの節で規定しています。なのに、節の名前を変えてしまっているのです。このような変更は、5.1以前のCDDでは一度もありませんでした。

実は、CDD 6.0(というか、Android 6.0 Marshmallow)ではPackageManagerの挙動に変更が加えられています。
その変更とは、App Linksへの対応です。
App LinksのAPIについては、次のGoogleの公式サイトに書かれていますので、ここでは詳しく書きません。
http://developer.android.com/intl/ja/training/app-links/index.html

Marshmallow における App Links 対応で目を引くのは

  • 特定のURIに対するIntent-filterを持つアプリをインストールするときに、そのURIに対してユーザの指示なしで自動的にデフォルト起動を指定できる

という点です。そして、特定のURIに対してデフォルト起動を自動設定するアプリが正当なものであることをチェックするためのインターフェースが用意されました。
それが、Google Digital Asset Linksです。

https://developers.google.com/digital-asset-links/

この仕組みを使うことにより、PackageManagerがアプリをインストールするときに、「そのアプリをデフォルト起動に設定してよいかどうか」を検証できるようになりました。

Intentというのは先に書いたように、Androidの根幹をなすAPIです。
いかなるアプリでも任意のIntent-filterを記述することができます。
ユーザは(プレインストールアプリなどの一部の例外を除いて)、特定のURIに対してIntentを受信するアプリの中から、自分の好みのものを選んで起動することができます。
また、ユーザはいつでもデフォルト起動するアプリを設定したり、デフォルトを解除することができます。

これらの特徴は、Androidが自由であることを象徴していました。この自由なIntentの便利さを享受したことがない開発者は、まずいないと思います。

しかし、Marshmallowからは、自分が開発したアプリを特定のWebサイトからのリンクに対して自動的にデフォルト起動するように設定できることになったのです。

ユーザから見れば、いちいちアプリをインストールする度に、ブラウジングするとアプリ選択画面が出てきてうっとうしいのを回避できるようになります。
一方で、「敢えてインストール済みの専用アプリを使わずに、ブラウザや別のアプリで特定のURLにアクセスしたい」というようなことができなくなる可能性を示唆しています。

それがいい事か悪い事かを判断するのは難しいですが、いわば「Intentの歴史を変える」ような大きな変更であることは間違いありません。

そして、CDD 6.0では、 App Links とGoogle Digital Asset Linksを利用して Intent-filter に定義された URI が妥当かどうかをチェックするための規定が追加されました。

この規定の詳細は、コミックマーケットC89で頒布する Techbooster の新刊に書く予定です。
https://techbooster.github.io/c89/

Monday, October 19, 2015

Android 5.1と6.0のCDDを比較する

2015/10/16にAndroid 6.0 MarshmallowのCDDが公開されました。
https://source.android.com/compatibility/downloads.html
https://static.googleusercontent.com/media/source.android.com/en//compatibility/android-cdd.pdf

Android 5.1からCDDがどのように変わったのか、ちょっと調べてみました。

Android 5.1のCDDは少なくとも2種類の版が存在していますが、比較対象としたのは2015/7/10の版です。版数の違いは、表紙の日付で区別できます。
ちなみに、Android 5.0と5.1のCDDについては、Android改善プログラミング で比較しています。ご興味のある方はぜひ読んでみて下さい。

記述量について

Android 5.1のCDDは62ページでしたが、6.0では74ページとなっています。
一方でファイルサイズは2/3近くにスリム化されています。無駄な画像のサイズなどを削ったのでしょうか。

表紙の変更点

Android 5.1のCDDの表紙は、赤を基調としたデザインでした。6.0では、ライトブルーの背景に白いマシュマロのデザインになっています。

目次の変更点

5.1では目次は2ページだったのに、6.0では3ページに増えました。それだけ内容が盛りだくさんになったということでしょうか。
目次で削られた項目はありません。増えた項目を列挙します。
  • 新しい項目として次のものが追加されました。
    • 5.9 Musical Instrument Digital Interface(MIDI)
    • 5.10 Professional Audio
    • 8.3 Power Saving Modes
    • 8.4 Power Consumption Accounting
    • 9.11 Keys And Credentials
    • 9.12 Data Deletion
  • 3.9 Device Administrationは、5.1では小項目がありませんでした。6.0で次の小項目が追加されました。
    • 3.9.1 Device Provisioning
      • 3.9.1.1 Device Owner Provisioning
      • 3.9.1.2 Managed Profiling Provisioning
    • 3.9.2 Managed Profile Support
  • 3.12 TV Input Frameworkは、5.1では小項目がありませんでした。6.0で次の小項目が追加されました。
    • 3.12.1 TV App
      • 3.12.1.1 Electronic Program Guide
      • 3.12.1.2 Navigation
      • 3.12.1.3 TV Input app linking
  • 7.6 Memory and Storageに次の小項目が追加されました。
    • 7.6.3 Adoptable Storage
また、変更になった項目は次のひとつだけです。
  • 3.2.3.2 Intent Overrides は6.0では Intent Resolution という名前に変わりました。

Friday, May 1, 2015

海外旅行中にMacBook Airが壊れたら何が起きるか

「海外旅行中にMacBook Airが壊れる」という事象が発生しました。
その時の記録です。
参考になる人がいるかもしれないし、いないかもしれません。

4/8(水)

  • DroidCon Montréalに参加するために羽田空港からトロント行きの飛行機に乗る。
  • 夕食のあと、座席でMBAを広げて作業をしていたところ、うっかりしてCAにもらったコカコーラをこぼしてしまう。量は多くなかったがMBAにもかかってしまった。幸いにして隣席の韓国人青年まで被害は及ばなかった。彼は親切にもコカコーラを拭き取るのを手伝ってくれた。
  • 飛行機を乗り継ぎ、モントリオールのホテルに着いてからMBAの電源を入れると普通に起動した。「問題なさそうだな」と思いディスプレイを一度閉じてからもう一度開くと、2度と起動しなくなった。
  • 私にはクレジットカード付帯の海外旅行保険(A社)があり、また勤務先の団体日常生活保険(B社)にも加入していて、どちらも携行品損害補償がある。これは出発前に確認済みで、「保険があるから何とかなるだろう」とこの時は思った。

4/9(木), 10(金)

  • DroidConはしょうがないのでPC無しで参加。聴講するだけなので、致命的なトラブルではなかったが、メモを取るのは大変だった。
  • 合間を見て保険会社A社に電話を入れる。確認したのはおよそ次の内容。
    • 現地で修理してもいいし、帰国後の修理でも可。
    • 保険対象のPCの写真を撮ることが必須。
    • 保険金請求には見積書か領収書のいずれかが必須。その他パスポートや航空券などの証明書類の写しも必要。
  • モントリオールのジーニアスバーは、滞在しているホテルからはやや離れていた。また滞在期間が短く、修理に費す時間が勿体ないので、修理などの処置は帰国後に行うことにした。

4/11(土)

  • 帰国のための飛行機に乗る。機中で日付変更線を越える。

4/12(日)

  • 帰国。帰宅する前に、近くのクイックガレージへ直行。次のような説明を受ける。
    • 今日はAppleのオンラインシステムが定期メンテナンスで停止しているため全世界で修理の処理はできない。明日の受付となる。
    • 水没の場合、修理はほぼ確実に高額になる。購入費用を上回ることもある。
    • 保証外修理をクイックガレージに依頼するとAppleに直接修理を依頼するよりも高額になる(手数料を上乗せするため)
    • 修理代はまず概算金額を電話で知らせる(ここまでは無料)。正確な金額は工場に送ってから確定するので1週間くらいかかる。見積書発行は有償になる。
  • まず概算金額を教えてもらうように依頼し、MBAを預けて帰宅。

4/13(月)

  • クイックガレージから電話があり、概算金額が86,400円と提示される。また見積書を発行する場合、概算修理代の10%に相当する見積書発行費用がかかるとのこと。つまり見積書発行だけで8,640円もかかる。
  • A社に電話し、昨日と今日のクイックガレージとのやりとりを伝える。
    • 86,400円は全額補償されるのか→補償の上限は10万円。また免責が3,000円ある。さらにA社の場合、減価償却を年率10%で計算する。私のMBAは2年前に約12万円で購入した(金額はうろ覚え)。つまり120,000×(1-0.1×2)-3,000=93,000円が(概算だが)補償の上限となる。仮に修理代が86,400円の場合、支払われる保険金は83,400円になる。結構ギリギリだ。
    • 見積書発行費用は補償されるのか→No.
  • 修理するか新しいMBAを買ってしまうか、一晩悩む。

4/14(火)

  • B社にも電話してみる。おおよそ次のような説明を受ける。
    • 補償の上限は50万円。免責は5,000円。
    • 減価償却率は6か月毎に5%。
    • A社とB社の両方に保険金を請求した場合、支払額は按分される。
    • A社だけ(またはB社だけ)に請求しても、A社とB社の両方で保険金を負担することになる(ので2社両方に請求する意味はあまりない)。
    • 見積書発行費用は補償されない。
  • 購入したのはちょうど2年前なので、減価償却率はA社もB社も20%で変わらない。他の条件も、ほぼ同一とわかった。それならば、免責金額が安いA社に請求する方がよい。

4/15(水)

  • 「8,640円もかかる見積書発行費用を安くできないか」と考えてAppleに電話してみる。シリアル番号やメールアドレスの確認などで少し手間取り、何回か電話するハメになったが、次のことがわかった。
    • 修理代は81,000円。
    • 書面の見積書は発行できない。
    • メールでの見積書発行は無料で可能。ただし発行に3〜5営業日かかる。
  • 最初にクイックガレージから説明を受けたように、修理代は少し安かった。しかし驚いたのは修理金額が電話の問い合わせだけで確定してしまったことである。おそらく社内マニュアル等で「水没は××円」のように決めうちされているのであろう。
  • 夕方、クイックガレージに行き修理をキャンセルして預けていたMBAを返してもらう。費用の点からクイックガレージを利用するのを諦めた訳だが、結果として1円も払っていないにもかかわらず、とても親切に対応してもらった。

4/16(木)

  • 来週中には修理が完了しない事はほぼ明らかになってきた。4/25にはDroidKaigiというイベントを控えていて、私は実行委員の一人だったため、色々と支障が出てくる可能性が高かった。そこで新しいMBAを買うことにした。円安などの影響もあり購入費用は約14万円となったが、Mid 2012からEarly 2015へとスペックが上がるので納得することにする。

4/18(土)

  • A社とB社の両方から保険金請求の書類が届く。先に書いたようにA社に請求した方が少し有利だが、請求書類を読むと「見積書・領収書はコピーではなく、必ず原本を添付すること」とある。メールの見積書は「原本」と言ってよいのだろうか。また「写真は破損箇所がわかるように撮影すること」と書かれている。水没しただけなので、見た目は全く破損していない。

4/19(日)

  • 新しいMBAが届く。早速、TimeMachineからリストアする。数時間かかったが、すぐに使えるようになった。最後のバックアップは出発前日に取っておいたので、失ったデータもほとんどない。

4/20(月)

  • Appleから見積書のメールが届く。事前に電話で聞いていたとおり、修理見積額は81,000円であった。
  • A社に電話し、添付書類について問い合わせる。
    • メールの見積書を添付して問題ないのか → 「書面の見積書が発行できなかった事情を、請求書類に記載して下さい」
    • 外見上の破損箇所はないが写真添付は必要か → 「現品を確認するために、破損していなくても必要です」
  • A社への請求書を投函。請求書以外に添付した書類は次のとおり。他に購入時の領収書が必要だが、見つからなかったので、特に何も添付せずにうろ覚えの金額をそのまま請求書に記入した。
    • パスポートのコピー
    • 航空券のeチケット控え(自動化ゲートを利用したためにパスポートに日本への入国印がなかったため。パスポートに入出国印がある場合は不要)
    • MBAの写真(念のため、色々な方向から数枚撮影した)
    • 修理見積書のメールを印刷したもの
  • A社への請求書に「同等の保険に加入している場合、その情報」を書く欄があったので、B社の保険証券番号などを記入しておいた。その代わり、B社の請求書は特に何もせずに放置。

4/25(土)

  • DroidKaigi当日。新しいMBAのおかげもあり、大きなトラブルもなく終了。

4/28(火)

  • A社から78,000円が振り込まれる。これにて保険金請求の手続きは完了。私の手元には、新しいMBAと電源が入らないMBAが残った。

Monday, February 23, 2015

DroidKaigiへの応募は2/25までです!

ご存じの方も多いかと思いますが、4/25(土)に、DroidKaigiというAndroidの開発者向けイベントが開かれます。

http://droidkaigi.github.io/

私は実行委員の一人としてDroidKaigiに参加しています。

これはあくまでも個人的な考えですが、DroidKaigiの特徴は、次の2つです。これは十分なメリットだと、私自身は思っています。


  • 一定以上の規模にもかかわらず、スポンサーに頼らず運営する(ただし会場提供のみサイバーエージェント様にご協力いただきました)。
  • CFPで講演者を公募し、講演者選定の公平性を可能な限り担保する。


DroidKaigiでは、講演者を募集しています。〆切は2/25です。
まだ講演に応募しようかどうか迷っている方がいれば、ぜひ応募して下さい!

DroidKaigi 2020 中止のうらばなし

既に公表されているとおり 、2/20,21の DroidKaigi 2020は中止になってしまいました。 実行委員のひとりとして多少なりともDroidKaigi 2020の準備に関わった立場から、今回の中止に関して感じたことを簡単に備忘も兼ねて書いておきます。 私のDroi...