ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

Androidの今を知りたい

ABCD2015Kの感想と体験からくるコミュニティの話とDroidKaigi CFP告知です。この週末でABCD2015Kにいってきました。地方で開催されるイベントとしては、想像以上の規模でセッションも濃く、懇親会も楽しく、あっという間に2日間をすごしました。参加を通じてAndroidについて色々浮かんだので感想を残しておく。

写真とか

f:id:hdk_embedded:20151122132918j:plainf:id:hdk_embedded:20151123105020j:plainf:id:hdk_embedded:20151126025052j:plain

f:id:hdk_embedded:20151123125018j:plainf:id:hdk_embedded:20151123204914j:plain

ご飯、とくにお魚(ノドグロは高級魚らしい)が美味しかった。講演もめっちゃバラエティ豊か。AndroidだけじゃなくてVRやUnity、UnrealEngine4やRoBoHonとか。展示ブースではてくぶ本のはなしばっかりしてた。

講演してきたよ

11/22,23に開催されたAndroid Bazaar and Conference Diverse 2015 金沢(ABCD2015K)では「エンジニアとコミュニティ」というタイトルで講演をしてきました(そういえば講演中の画像がない)。

[追記] ありました!!

f:id:hdk_embedded:20151122153923j:plainf:id:hdk_embedded:20151122154108j:plain

ひつじ(筆者)はコミュニティ活動に熱心なのですが、これまであんまりそういう視点で発信したことはなかった。言わなくても「コミュニティの重要性は分かってるはず」とか「いやぁ、改めて話すのけっこう恥ずかしいよね」とか色々あったんですが、

ABCD2015K主催の@kinneko さんからこういう視点で話して欲しいと言われたので良いきっかけとばかりに話した次第です(講演の内容はABCD2015Kで話したから意味があるのかなー、とおもうので、いまのところアップする予定がないです。もし知りたければひつじをみつけてきいてください。たぶん別の言葉で説明すると思います)。

コミュニティ活動ってなんだろな?

今はABCD2015Kのクラウドファンディングへ出資するぐらい意識してるのだけど、元々こういうコミュニティ活動への支援というのは熱心だったかというと出発点はぜんぜんそんなことなかった。

最初はTechBoosterというブログで自分の知識をまとめる、という自己学習的なところがスタートだったし(8年前だ。若かった)コミケも記念参加からはじまった(そしたらハマって5年目になる)。

そのうち勉強会で友達が増え、Twitterで新しいひととつながって、輪の中にいるのが楽しくなってきた。続けていくうちにOTAのようにアップデートされて、どんどん目的が変わっていくかんじ。最初から高い目標があるわけでもなかった。やれることをやっただけでずっと楽しんでました。

そうしてコミュニティという単語を意識するようになったんだけども、僕にとってのコミュニティはどこまでいっても「私」と「あなた」で目に見えている人(またはネットを介してそこにいる人)との関係なのだろうな、という気持ちです。

それは開発者として同じ目線で話したい、共通言語としてAndroidであり技術情報の共有やコミュニケーションなのかも、という気持ちです。何かを発信するのなら距離は近いほうが良くて、ブログの記事だったり、勉強会だったりするけども、実際は読んでくれてる、座って聞いてくれているひとと一対一で話したいのだろうな、と。

このポストも感想の体をとってますが、読者のひとと対話したいな、そう考えて文字を置いてます(コミュニティって押し付けられるものじゃないしね)

一人で技術を追う恐怖

講演おわったあと、@kinnekoさんと話してて「ひつじの話は綺麗すぎる、もしや濁りのない真水で生きてるのか」みたいな笑い話をして、ちょっと考えたんですよ(自分の気持を考えるのも不思議なやつだ、と評されて確かに、とおもった)。

何かを一人でやるのってめっちゃ怖くないですか。エッジな技術をどんどん追いたいけど、ワクワクするけど実は間違えてないか、って考えちゃうと一人でやるのコワイんですよね。妥当性を確認するためにガンガン情報を検索したりするし。ただ技術的なトレンドをみてもエッジをどんどん追っていく、ということ自体は技術の進歩とも連動してて間違いじゃない。

「なんか知らないけど漠然とした恐怖感がある。これを解消するためにコミュニティとしてまとまりたいんじゃないすかねぇ。自分のしてることがおかしくないのを確認するために」「それなら少し理解できるかも」っていう会話をした。あんまりこういう動機についての話をしたことなかったのでまだ覚えてた。ちょっと泥臭いはなしだ。

ここは会社でさわってたり趣味だったりとか事情によってで差はでそう。

皆で技術を追うということ

ひつじが考えてることは、同じ技術を追うフォロワーを増やすことよりも(当然よいテクニックは広まって欲しいけど)、それぞれが技術をもってて、いろんなエッジをやってるのを見てみたい。持ってる知見を共有することで一人でやってるわけじゃない、みんながいろんなものを追いかけてるんだ、個々の領域の知識を交換してそれを糧になれば、もっともっと良い開発ができる。

やばいなー、とおもってるのはAndroidやWebでトップを走るエンジニアと初学者の間に埋められない谷ができはじめてるんじゃないかという危機感。Android Studioでアプリを動かしたらSupportLibraryがてんこ盛りで、検索してでてくるコードにRxJavaやDaggerが入っててつまずく、っていうのはどうやって解決するんだ、という気持ちが多少なりとも(たぶんAndroidだけの問題じゃない)。そういうのを補えるようベストプラクティスを書籍にする活動とかをしてます。

ちょっとうまく言語化できたかはわかんないですが、どの技術(テクニック、ライブラリと言ってもいい)も、それらは生み出した人、運用している人には何かしらの価値がある。そこから学べるような、誰もが良い所を取り入れられる場が=コミュニティであれば良いな、と思います。

Androidの今を知るために

いろいろ書きましたが、そんなふうにエンジニアが情報共有してコミュニケーションする場を実現できたらいいな、とおもってDroidKaigi(代表mhidaka)の開催準備を進めています。11/30までCFPを受け付けています。

droidkaigi.github.io

CFP提出頂いた方にはアーリーバード保証(チケット販売12/1開始と採択までの期間がクロスしてるため)があります。参加したい、と思ってもらえたなら現時点だとCFPが確実です。

聞きたいAndroidの話

ひつじ自身が上のような考え方なので、講演内容は話す人が良い開発に繋がると思ったことを、普段の工夫を、ジャンル問わず話してもらいたい。興味が有ること、研究と組み合わせたこと、初級中級上級全方位あったほうが新しくAndroidを始めたばかりの人からエッジなひとまで楽しめるとおもいます。

いろんな人が来ると思うのでセッションも同時並行で幾つかを走らせます。セッションを選べるということは興味がある人が部屋にきてくれます。ぜんぜんこわくない。むしろ味方。参加人数はちょっとわかんないですが(前回の反省を踏まえて400人以上参加できる条件で探したので平日&有料となってしまった事情もあり)もしかしたら海外のカンファレンスのようにゆったりできるかも。

ハンズオンやコードラボ、知らない技術を安心して触れる場もできたらいいな、とおもう(人出が足りるかは不明)。

楽しめるように(そして自分が楽しんでるわけだけども)ホストします

エンジニアと地方とAndroidと。

ひつじだよー。

ついさっき、「金沢でAndroid開発者の交流イベントを開催したい! ABCD2015金沢」というクラウドファンディングに出資しました。このエントリをよんで同様に出資してくれるひとがいればいいな、とおもってかきました。

金沢でAndroid開発者の交流イベントを開催したい! ABCD2015金沢

motion-gallery.net

3口+αで20000円を出資しました。せっかくたくさん出したのでブログでPRしたくなりました。あと6日、目標金額の半分まできてます。1口1000円からなのでお財布に余裕がある人は一度検討してみてください。主催してるkinnekoさんを知っていますが、率直で誠実なひとです。

 

ひつじ(mhidaka)は、Androidの講演をしたり、ABCという日本Androidの会のイベントにでたり(毎回TechBoosterというサークル名でブースをおかりしてます)、今年の春はDroidKaigiというエンジニアのためのAndroidカンファレンスを主催しました。もともとエンジニアの技術共有やコミュニケーションに興味がある人種だと思うのです。

なんで出資したの?

わたし自身がすきなプログラミングやエンジニアという生き方について、興味がある人が多少でも触れることができ、なにか得られる機会が増えればうれしいです。

最近、総裁のブログを読んだのも関係してるかもしれません。

engineer.typemag.jp

腕の良いエンジニアはどこでも仕事できそうだなぁ、という思いとともに地方でもエンジニアになりたいひと、興味がある学生さん、開発者として成長するキッカケ、環境として、もうちょっと選択肢が増えたほうがいいな、とおもって出資しました。

このエントリは…

というわけで完全に宣伝エントリになったけども、たまにはいいかな、と思います。だれかがこうやって意思を表明することで目につくならそれがいいんじゃないかなー、と。

文末ですが、主催しているkinnekoさんは友達ですが依頼があったわけではなく、完全にひつじの個人的な行動です。と書いておきます。ステマとか、周りがやってるからやらなきゃ、みたいな同調圧力とかも好きじゃないですが、やる気を出して頑張ってる人たちに水を刺したくはないです(懸念があればアドバイスとして伝えるのがコミュニティのよい姿)。なので、地方(という言葉もあまり好きではないですが)でのこういう活動を応援したい、と思ってかいたよ、と念のため、自分がモヤモヤしないために書いておきます。

 

AndroidでもSORACOM Airを使いたい!

9月30日に発表されたSORACOMがとても面白そうだったので、友達といろいろ話したアイデアをアプリにしました。

さいしょにまとめ

SORACOM Air(IoT デバイス向けデータ通信 SIM "Air SIM")をAndroid端末で使ってみよう、従量課金なので不要な通信を全カットするユーティリティ「IoT Gateway」を作ったよ、というのがこの記事のざっくりとしたまとめです。

 

今回つくったIoT Gatewayを使うとAndroidで意図しない通信を止められます。バッテリ持ちも伸びるかも。

f:id:hdk_embedded:20151002113315p:plain

  • アプリ単位で通信を禁止/許可できます
  • 次のリリースではIPフィルタリングが入ります

ダウンロードは記事の一番うしろです。

f:id:hdk_embedded:20151002104717p:plain
アプリを作って遊んでる開発者のイメージ図(※簡単さを表現したかったのですが、出来上がってみると本文とはあまり関係なくなりましたがボツにするのも惜しいので唐突に紹介しておきます。ぺしぺし)。

IoTプラットフォーム SORACOM の概要

ソラコムさんの提供する IoTプラットフォーム"SORACOM"の詳細は、他に詳しいサイトが多くあるので省略です。サービス概要やメディア報道をよむと雰囲気がつかめて良いです。

 ざくっと言って、MVNOの回線網をプログラマブルにして提供する=IoTデバイスの課題である接続性とセキュリティをクリアできて更に柔軟だよ、がいいところ。

Androidの通信を制限するゲートウェイアプリ「IoT Gateway

つくったアプリでは次の図のようなことをやってます。

f:id:hdk_embedded:20151002113315p:plain

アプリでホワイトリストをつくって通信をコントロールしてます。

SORACOM Airで遊ぼうと思ったとき、次のような点でめんどくささがあります。

  • Arduinoやmbedなど電子工作機器は、SIMで接続する手段がない or 高額
  • Raspberry PiはUSBの3G通信ドングルが使える。良い。
  • センサーはハードを買ってきてつなぐハードルがある。組み込みの知識がいる。

こういう組み込み系の知識もあったほうがいいっちゃいいのですが(実際好きな分野なんだけど)クラウド側と組み込み、両方を求めるのは厳しい。そこでAndroidをつかえば楽できんじゃないの、というのが今回のアイデアです。

  • Android端末には沢山センサーついてるのでこれを使いたい。安上がり。
  • モバイルアプリと同じ感覚で作れるので楽。
  • 標準アプリとかが勝手に通信するのは避けたい(お金かかる)← これを解決

f:id:hdk_embedded:20151002110058p:plain

このようにアプリごとに通信を許可します(ひとつも許可が入ってない→ネットワークから完全に遮断される、です)。

ダウンロードはこちらから

 今回の対応機種はAndroid 5.0以上です。今後、安価なAndroid端末でも使えるようにAndroid 4.0.3までサポート範囲を拡張する予定です。後述する免責事項もあり、Playストアに上げるほどのクオリティになってないためバイナリ提供です。自己責任でためしてみてください。

f:id:hdk_embedded:20151002110223g:plain

apkダウンロード もしくは上記QRコードから。

免責事項:夜中に作ったやつです。動作保証はありません。本アプリはAndroid OSのもつVPN機能(VPNService)を応用して、ネットワーク通信を制限しています。そのためAndroid OSもしくはメーカーが改変した機能でVPNServiceを迂回する通信があった場合、無力です。通信します(手元の端末でも大丈夫か検証してみてください。アプリをオンした状態でネットワーク状況を確認してみるなど)。

さいごに感想

SORACOM Airで遊ぶときに、とりあえず必要だったという理由でIoT Gatewayを作りました。じゃあ、どんなことを試せるの?という話になると難しい(思いついたものは他のSIMつかってもいいかも、というものがほとんどだったりします。企業として、またはバラ巻きたい、みたいな考え方だと色々でてくるあたり、SORACOMはB2Bで強いなぁ)。

 

それでも試行錯誤したり試作したり使えそうだったので(そこから更に次のアイデアが出てくるといいなぁ)熱が冷めないうちに、かたちにまとめてリリースしました。

 

おとといのSORACOMのリリースをみて、自分でサービス組めるのかぁ!すごいフレキシブルだ!楽しそうだなぁ、とおもったのが一番単純な理由です。誰かの役に立てば幸いです。

 

追伸:こんな機能がほしい、あんな機能がほしいなどあればTwitterとかコメントとかでご連絡下さい

 

追伸2:

f:id:hdk_embedded:20151002120357j:plain

先ほど我が家にもSORACOM Airがとどいた!