2019年6月17日月曜日

「Google I/O Extended 2019 Kobe - Flutterコードラボ -」を開催しました

こんにちは。GDG神戸の嘉多です。

6/16(日)に「Google I/O Extended 2019 Kobe - Flutterコードラボ -」を開催しました。
会場は今回も「キッズプログラミングスクール8x9」様にお借りしました。
今回はGDG神戸のオーガナイザー野田さんによるFlutterの概要説明から始まり、コードラボをこなしていくイベントでした。

第一部はFlutterの概要セッションです。
FlutterはMaterial DesignやCupertino Widgetに対応していて、美しい見た目のAndroidアプリやiOSアプリを出力することができるそうです。
また、静的型付けで型安全であり、ロックレスGCという完全停止する瞬間のないGCを実現しているそうです。



第二部はIntro to Dart for Java Developers、Java開発者向けのDartコードラボです。
Intro to Dart for Java Developers
こちらの公式コードラボサイトを参考に、クラスを作っていくコードラボでした。
ここでは自転車クラスや図形クラスを作っていき、Dartの便利な書き方を学んでいく内容になっていました。
factoryパターンも言語仕様レベルで利用を想定されており、予約ワードで明示的にファクトリメソッドを定義できるようです。


第三部はWrite Your First Flutter App, part 1、はじめてのFlutterアプリです。
Write Your First Flutter App, part 1
こちらの公式コードラボサイトを参考に、Flutterアプリを作っていくコードラボでした。
このコードラボでは実際にAndroid/iOSアプリを作り、エミュレータや実機で実行してみる内容でした。
Flutterフレームワークを使ってDartで実装し、ウィジェットなどを配置してアプリで表示してみました。
このコードラボでは最終的に無限スクロールのリストを作成しました。
ネイティブAndroidだとAdapterを書いたりして結構複雑な処理を書かなければなりませんでしたが、Flutterだと簡単に書けました。ここはDartの言語仕様がいろいろと機能を持っているからだと思いますが、APIを呼んだりしてリモートからデータを取ってくる場合にどの程度簡潔になるのかが気になるところでした。


第四部はFirebase for Flutter、FlutterでのFirebaseの使い方です。
Firebase for Flutter
こちらの公式コードラボサイトを参考に、FlutterアプリでFirebaseを使うコードラボでした。
赤ちゃんの名前を投票するアプリで、Firebase Databaseで設定したデータをリスト表示して、タップするとFirebase側のデータを更新するというものでした。

簡単にFirebaseに接続することができるので、サーバレスなオンラインアプリなども気軽に作ることができそうです。

Androidでは意外と面倒なMaterialDesignの実装をさらっとやってのけ、コードも簡潔に書けるFlutterの今後の進化に期待です!

Flutterピンズの争奪戦に燃える一同

コードラボが終わったら飲み会


GDG神戸では今後もFlutterをキャッチアップしていきますので、ご興味のある方はぜひDoorKeeperにご登録ください。GDG神戸のイベントのお知らせなどを受け取ることができます。
最後になりますが、会場をご提供いただきましたキッズプログラミングスクール8x9様、ありがとうございました。

2019年3月25日月曜日

「【大阪】Firebase Meetup in Osaka #2(共催:GCPUG神戸+GDG神戸)」を開催しました


こんにちは。 GDG神戸の中谷です。

3/24に「【大阪】Firebase Meetup in Osaka #2(共催:GCPUG神戸+GDG神戸)」を開催しました。
本イベントはFJUG Osaka/GCPUG 神戸/GDG神戸と共催で行い、会場はBillage OSAKAで開催しました。

今回はMeetupでメインセッションが1つ+LT形式の勉強会で、メインセッションはFirebaseプロダクトマネージャーのMichael McDonaldさんにご講演いただきました。

このセッションについては、通訳なしの英語だったのですが、スライドを日本語で書いていただいていたこともあり、皆様聞きやすかったのではないでしょうか。

今回発表頂いた内容は、どのように、サーバーレスコンピューティングで高品質、高いセキュリティのアプリケーションを作るかという話でした。(Firebaseはサーバーレスですよね)
私もFirebaseのいくつかの機能を使っていてどのようにセキュリティを担保していくかと言うところは常々考える必要があると思っており、どこまでを開発者がケアするのか、どこをGoogle(プラットフォーム側)がケアしてくれるのかという境目を認識する改めていい機会になったと感じています

質疑応答については通訳の方にお願いしながらいくつか質問が上がっていましたが、私が気になったのは、AWSとGCPの違いがわかりません。GCPのいいところを教えてくださいというど直球な質問でした。Michael McDonaldさんも苦笑いでしたが、中々回答の難しいものですね(笑)やはりケースバイケースということでしょうか。

セッション終了してLT終了後は、懇親会!ということで、今回は非常に沢山の飲食をご用意頂いたのですが、実は写真を取り漏れております。。。
なので脳内で想像していただくとしてですが、今回の懇親会では普段の勉強会よりも、色々な方々の交流があったように思います。
Firebaseはモバイルから始まりましたが、今はWebも含めて様々なプラットフォームで利用できるため他の要素技術を持つエンジニアも多く、いい刺激になったのかなと思います。

この後には、「Kiiiya Hommachi」で2次会?と言うなのもくもく会があったようです。
私は参加できませんでしたが、いつもの通りのオーガナイザーの写真をアップしておきます

いつものようにVRですね



今回非常に沢山の方にご参加いただいたことと、登録されている方の出席率が非常に高く、運営側としても良かったと感じる部分が多くありました。
主観にはなりますが、Firebaseは非常にいいツールです。簡単に色々なことを実現してくれるため「とりあえずサービスやアプリを作りたい」という思いで簡単に始められます。しかしこれがプロダクションに乗ったらどうでしょう。このままでいいのか?そんなことを考えさせられるMeetupだったかなと思います。

GDG神戸でもFirebaseはキャッチアップしていきたいと思います。
ぜひDoorkeeperにご登録ください。

2018年12月6日木曜日

「Mix Leap Study #29 - Step up for TensorFlow」を開催しました


こんにちは。 GDG神戸の中谷です。

12/4に「Mix Leap Study #29 - Step up for TensorFlow」を開催しました。
本イベントはヤフー株式会社様とGDG神戸と共催で行い、会場はヤフー株式会社様にご提供いただきました。

 今回はセッション形式の勉強会で、すぎゃーんさんと、GoogleよりLaurence Moroneyさんにご講演いただきました。

まずはすぎゃーんさんからですが、すぎゃーんさんは仕事では機械学習をされていなく、趣味でされているとのことでした。(まずそこに私は驚きました。。)

今回発表頂いた内容は、機械学習のデータセットをいかにうまく分類するか、ということで、ご自身で作成されたWebツールの紹介をされていました。
データを保持する環境もVPSを試されたり、GAE/GOやCloudStorageを使ってみたりと、試行錯誤されながらやっているという話が興味深かったです。
GCPのMLEngineなどを使うと、学習処理も安価に実行できるという話でした。
やはりデータ集めと投入は大変なイメージでした。。。

質疑応答についてはSlidoを使用しましたが、多数の質問が上がってきてて非常に皆様の興味が惹かれる内容だったのだと思います。

次に、Laurence Moroneyさんから「Mobile Machine Learning AI in the palm of your hand」のタイトルでご講演いただきました。
全編英語のため、私も10%ぐらい理解できていればいいほうで、残念ながらここに書ける内容はありません。。。
(Tensorflowの概要の話や、モバイルにTensorflowLiteのモデルデータを作って、端末で学習済みデータを使って画像認識するデモでした)
これはPACマンのゲームを指の向きに合わせて操作するというDemo
Slidoでもたくさんの質問が上がっていて、皆さん是非この機会に!というような盛り上がりでした

終了後は、テーブルに分かれての懇親会。皆さんココぞとばかりに質問攻めでした


すぎゃーんさんのキーボード!!
ご飯美味しかったです!
たくさんの飲み物もありがとうございます!
やはり機械学習はまだまだホットワードなのか、今回も非常に沢山の方にご参加いただきました。
機械学習のツールも整備されながら少しずつではありますがあまり詳しくない人でもある程度のことができるようになってきていると感じます。
今後も機械学習はホットワードとしてGDG神戸でも勉強を開催していきたいと思います。

最後になりますが改めて場所をご提供頂きましたヤフー株式会社様ありがとうございました。

2018年11月19日月曜日

「DevFest 2018 GDG神戸 Flutterハッカソン&コードラボ@さくらインターネット大阪本社」を開催しました


こんにちは。 GDG神戸の中谷です。

11/19に「DevFest 2018 GDG神戸 Flutterハッカソン&コードラボ @さくらインターネット大阪本社」を開催しました。
 本イベントの会場はさくらインターネット株式会社様にご提供頂きました

 今回の勉強会はハッカソンとCodelabの2トラック制で行いました。

まずはCodelabの様子から
司会進行はGDG神戸の夜子ままさんに行っていただきました
Flutter概要〜Codelabを2つ行いました
今回Flutterはじめての方ばかりで、まずはDart言語の理解
そして、Flutterの使い方、書き方を学びました。
言語と、Frameworkとを同時に学ばなくてはいけないこともあり、みなさん中々苦労されながらやっていたように思います

Codelabが終われば、短い時間でしたが、2チームに分けアイデア出しと開発と、ミニハッカソンのような形で初心者チームもハッカソンを行いました
アイデア出し

さて、ハッカソンチームはというと。。。
今回はハッカソンの参加者が少なかったこともあり、1チームだけでした
朝から、いくつかのネタ出しを行って、初心者チームがハッカソンを始めた頃には
開発は佳境に差し掛かっていました。みなさん必死ですね。
今回は画面ごとに役割分担をされていたようです

終了後は、最後皆さんで発表し、ハッカソンした内容を共有しました。


初心者チーム1
初心者チーム2

ハッカソンチーム



初心者チーム1はGCPのBigQueryをモバイルアプリで操作したいというようなものを考えていて、構想しながら、少し表示されるアプリまでというところまで。

初心者チーム2は待ち合わせのときに使える位置情報アプリを考えて、GoogleMapのAPIから位置情報を取得できるようなところまで試すことが出来ていました。

本命のハッカソンチームですが、自分の現在地から、特定の範囲内のIT勉強会を表示させるようなアプリを作っていましたが、この短時間でもしっかり動作はしており、Flutterの力を見せつけられたような気がします。


さて、今回はFlutterの勉強会を行いましたが、個人的にKotlinでAndroidを書いていることもあり、非常に興味深い勉強会になりました。
私が注目した点としては、HotReloadの速さ、またFlutterのコンポーネント数の多さ、簡単にマテリアルなレイアウトになることなど良かったと感じています。
しかし、デザイン周りのネストするコードや、レイアウトエディターがやっぱりほしい!など思う部分もありました。
Flutterはまだベータです。これからどんどん良くなることが期待されます。
今回なかなか参加人数が集まらなかったように、関西ではまだまだFlutter自体が認知されていない部分もあるとおもいます。しかし今後皆さんにもっと情報発信をし、みなさんと一緒に輪を広げて関西でもっとFlutterを使う人が多くなれば嬉しいなと思います。

最後になりますが改めて場所をご提供頂きましたさくらインターネット株式会社様ありがとうございました。

2018年10月9日火曜日

「Flutter勉強会(9/29)」を開催しました

こんにちは。
GDG神戸オーガナイザーの野田です。

9/29(土)に「Flutter勉強会(9/29)」を開催しました。
会場は今回も「キッズプログラミングスクール8x9」様にお借りしました。

FlutterはDart言語によるモバイルアプリ(Android、iOS)の開発フレームワークのことです。
画面に配置するUIを記述するだけで、マテリアルデザインが適用されたアプリが構築できます。しかもAndroidとiOSのどちらでも動作します。
従来のマルチプラットフォーム用フレームワークと異なり、UIをAndroid用、iOS用と別に用意する必要がなく、シンプルな実装で素晴らしいUIが作れるのが特徴です。
また、パッケージ(ライブラリ)も豊富で、従来のネイティブコード(Java、Swift等)で実装するよりも楽に書ける(しかもどっちも動く)のも特徴の一つです。

9月中旬にRelease Preview 2が公開され、次のアップデートではFlutter 1.0がリリースされるとのことです。
扱いやすさから、今後はどんどん広がっていくのではないかと期待できるフレームワークです。

GDG神戸は今年からFlutterに注目しており、今回はFlutterを扱う勉強会の3回目となります。
関西圏では珍しく、今後も積極的に勉強会を実施していこうと思ってますので、良かったら今後のGDG神戸の勉強会をチェックしてみてください。



さて、今回の勉強では、Flutter初心者を対象に、登壇者の実装ノウハウを共有することで、少しステップアップする感じのものとなりました。

最初は毎回やっていますが、GDG神戸のやこままさんにFlutterの概要説明をしていただきました。翻訳スライドはこちらです。元スライドはこちらになります。
毎回わかりやすい説明で、Flutterを知らない人がFlutterがどういうのものかを知るには、ちょうど良い内容でした。
Flutter公式資料の翻訳

そのまま引き続き、やこままさんがFlutterでレイアウトを構築するときに、どういう風に考えているかを、分かりやすく説明していただきました。
Flutterでのレイアウト構築の考え方

次はスーパー小学生のアリサさん。「RemindMe」という位置情報(場所)と紐づくTODO管理アプリを作成され、そのアプリについての実装ノウハウを発表していただきました。
また、このアプリで「Tech kids grand prix」の決勝大会まで進んだとのことで、惜しくも優勝は逃しましたが、今後の活躍が楽しみな子です。
位置情報と紐づくTODO管理アプリと
「Tech kids grand prix」決勝大会について

そして、Flutterについて非常に豊富な知識を持つ、株式会社tech vein(テックベイン)の河本さんです。「AndroidやiOSのアプリ開発でいつも私がやっていることをFlutterでやってみた」というタイトルで、Clean Architectureで設計する方法や、本番とテストで設定を切り替える方法、CI/CDツールの選定について、Flutterの場合どうすればいいかを発表していただきました。
モバイルアプリ開発者向けの、Flutterに移行する場合に気になるノウハウで、かなり濃い内容でした。
モバイルアプリ開発者向けの、
Flutterに移行する場合に気になるノウハウ

最後は僕、GDG神戸オーガナイザーの野田です。※毎度のことながら写真はありません…。
Easy Video Bucket」という、ストレージ内の動画再生、Youtubeの検索とお気に入りリストの作成が簡単にできるアプリをFlutterで作り、そのアプリでAdmobを実装したため、FlutterでAdmobを実装する方法について話をしました。
資料はこちらになります。


回を重ねるにつれ、かなりノウハウもたまって来ているので、もっと皆さんと共有できたらと思っています。
なにより、Flutterでアプリを作るのはすごく楽しいので、ぜひ触ってもらいたいですし、ハッカソンとかもやっていきたいなと思っています。
引き続きよろしくお願いいたします。

2018年8月16日木曜日

「Flutter勉強会」を開催しました

こんにちは、GDG神戸の嘉多です。

8/12日(日)に「Flutter勉強会」を開催しました。
会場は前回と同じく「キッズプログラミングスクール8x9」の教室をお借りしました。

FlutterはAndroidとiOS両アプリのUIを同時に作ることができ、Material Designの美しい見た目とアニメーション付きの画面を簡単に作成できます。
Reactと考え方や書き方が似ているため、Webフロントエンジニアの方でもとっつきやすいのではないでしょうか。
今後が楽しみな開発フレームワークです。

さて、そんなFlutterの勉強会ということでまずはGDG神戸のやこままさんよりFlutterの概要説明をしていただきました。


やこままさんの Flutter公式資料の翻訳スライド
スライド (オリジナルは こちら )




続いて環境構築 & Dartコードラボを行いました。
半数ぐらいの方はすでに環境構築を済ませて参加されていたので、
他の方が環境構築をしている間、Dartコードラボをもくもくとこなしていきます。


もくもく

はじめてDart言語を触りましたが、書きやすくていい言語という印象でした。
環境構築も終わり、次はFlutterコードラボです。


Flutterコードラボの登壇者はありささん、最近はFlutterで位置情報を利用したアプリを作っているというスーパー小学生です。アプリの前はロボットを使ったプログラミングをやっていたそうです。プレゼンまでこなしてしまうとは末恐ろしいですね。ちなみに英語もできるそうです。。!!

ありささんの説明で進行していくFlutterコードラボ

Flutterコードラボではお気に入りボタン付きリストとお気に入りフィルタリストへの画面遷移までを作成しました。
その後はもくもくタイム、コードラボの続きをやる人もいれば開発環境をより快適にする人も。それぞれ楽しんでいました。

最後にLTです。


Ebineさんからセブ島に行ったときにGDG Cebuに参加したときのお話をいただきました。セブ島にもGDGがあるんですね!


株式会社tech veinの河本さんより、実際にFlutterで作ったチャットアプリのお話をいただきました。

写真を撮り忘れていたのですが、このあとGDG神戸オーガナイザーの野田さんより、GDG神戸の紹介LTもありました。
仕方がないので別の写真を貼っておきます。


GDG神戸では引き続きFlutterをテーマにした勉強会などを開催する予定です!
他にもVRやTensorFlowなどさまざまな技術を扱う予定ですので、ご興味のある方はぜひDoorKeeperにご登録ください。
イベントが公開されたときにメールでお知らせを受け取ることができます。

最後になりますが、会場を提供いただきましたキッズプログラミングスクール8x9様、ありがとうございました。

2018年7月18日水曜日

Flutter codelabを開催しました

Flatter勉強会のレポート
こんにちは GDG神戸のやこままです
7月の三連休の真ん中の日曜日、7月15日に、キッズプログラミングスクール8x9の教室をお借りして「Flutter codelab」を開催しました。

Flutterは、2015年にGoogleにより発表された、Dartで実装できるiOS/Android向けのアプリケーションフレームワークです。
Flutterは、エンジンがC++で書かれており、Googleが開発している高速なグラフィックライブラリSkiaを採用し、ほかにもChromeの技術を流用していたりということで、発表当時は話題になっていました。
私は、その頃はちょうどモバイル開発からちょっと離れていたので、詳しいことを知らないのですが、最近少しづつモバイル開発もやるようなってきて、情報をキャッチしだしたところ、ちょうど、FlutterのCodelabをやっているという話をきいて、興味を持ちました。
それで、Flutterに関しては、まだかなりにわかな私ですが、せっかく学んだことなので、GDG神戸のほうでcodelabをやってきました。

こじんまりした感じでやる予定だったので、会場は10人ぐらいがはいればちょうどいいかなというところです。

昼過ぎの12:30に開場ということなので、野田さんとはやめのランチをとって、12時ちょっとすぎ会場で待機していると、ちらほらと集まってきました。


今回初参加の二人
 今回、都合があわなくて、いつものGDG神戸のメンバーの参加がなくちょっとさみしいですが、京都から来られた方や、東京に現在住んでいて、大阪にたまにかえってこれれる方がわざわざ調整して参加してくれて、お二人とも、とても久しぶりに会えたので嬉しかったです。それと、うれしいことに、GDG神戸の勉強会参加がはじめての方が二人もいました! トータルで僕をいれて6人の参加です。もうちょっと集まってほしかったところもありますが、codelabをやるという名目の勉強会を考えればまずまずです。
といっても、じつは、数名遅刻もあり、開始時間になっても3人しか集まっていないときにはさすがに、開催していいんやろかとちょっと不安になってました。

 勉強会では、codelabをやるだけではちょっとおもしろくないので、最初に、Flutterの概要について、スライドをもちいてセッションをしました。


こちらの資料は、Googleの公式の資料を翻訳しただけなので、スライドシェアはしていませんので、上記リンクからご覧ください。(オリジナルはこちら)

そして、そのあと、Dartのレクチャーをしました、Dartのレクチャーは、Dartのcodelabをやりますが、せっかくなので、モブプログラミングでやってみることにしました。

DartのCodelab Intro to Dart for Java Developers

モブプログラミングは、ドライバーというコードを書く人と、それに対してナビゲータという意見を出す人が複数の構成でプログラミングをする手法です。ペアプログラミングという似た言葉もありますが、あれの複数版だと考えれば想像しやすいです。
今回、人数が6人だったので、ちょうどいいと思いやってみました。

モブプログラミングをしているところ

実際にやってみて、とてもよかったとおもいます。Dartという、知らない言語に対して通常なら一人でcodelabをやる場合、些細な疑問があったとしてもわからないまま進めてしまうことが多いです。モブプログラミングではそのような疑問も随時質問をし、みんなでそれに対して調べ、また詳しい人がいればその人に説明をしてもらう、ということができるので、深く理解をすることができました。
とくにDartのコンストラクタやオーバーロードなどの理解が深くできたので個人的な収穫も大きかったです。
ただ、モブプログラミングの欠点として、脱線が非常に多いので、決まった内容をするときは、想定より多く時間がかかってしまいます。

そのため、Dartのcodelabはモブプログラミングをしましたが、flutterのcodelabは、各自でやることにしました。


Flutterのcodelabをやっているところ
Flutterのcodelabは Write Your First Flutter App, part 1

こちらをしました。
codelabは他にもいろいろありますが、内容がしっかりしていて、進めやすかったのでこれにしてます。

トータルで、4時間のcodelabですが、蓋をあけたらもくもくの時間が足りないぐらい皆集中をしていました。
僕自身は、ymlファイルを、自動翻訳するアプリを作ってましたが、時間がたりなくて間に合わなかったです。 次回の勉強会で発表できたらなとおもっています。


野田さんが、北海道で捕獲してきた、本場の白いやつ









今回の勉強会で、Flutterはとても面白いというご意見を参加者からいただきました、 そこで、次回の勉強会もFlutterをやろう思っています。
 おそらく、8月の中旬頃の予定です。 今回参加できなかった人も是非参加してみてください。 
 しばらくは、初心者むけの内容になる予定なので、モバイルアプリの開発がはじめての方でも参加しやすいとおもいます。
 とくにFlutterは、面倒な手続きが少ないので、モバイルプログラミングを一度もしたことがない人にとって、とってもはいりやすいフレームワークです。
 かくゆう私もiOSやAndoridをしばらくやってないので、いまさら、勉強するのは面倒でやりたくないなと思っていましたが、Flutterなら簡単なのでやりたいなとおもっています。 

 次回をお楽しみに 
 やこまま