Furyu
[フリュー公式]

Tech Blog

フリュー株式会社の技術ブログです

2018年06月25日

furusin

フリュー主催の勉強会(京都Devかふぇ#2)を開催しました!

こんにちは。ピクトリンク事業部の古川です。

前回に引き続き、フリュー主催の勉強会を開催しましたのでご報告します。

前回のレポートはこちらから

京都Devかふぇ#2 〜WWDC & Google IO総復習会〜

今回も30名以上とたくさんの方々にご参加頂きました!

新たな取組みとして「突発LTやりたい人がいたらどうぞ!」としてみました。

実際には手は上がらず私が登壇しましたが、発表における門扉を広くできたらなと考えています。

 

勉強会の様子

15分発表枠

トップバッターは弊社の足立より、WWDC 2018 のまとめを発表しました。

IMG03135

WWDCの情報は日本語では意外と多くなく、情報を欲している方が多かったようで、皆さん食い入るように聴かれていました。

発表資料はこちら

 

2人目は @kwmt27 様より、Google IO 2018で発表されたNavigation Architecture Component についての発表でした。

Navigation Architecture Component(京都Devかふぇ バージョン) from Yasutaka Kawamoto

実際にGoogle IOに参加されただけあって、非常にわかりやすく、かつ深く解説されていました!

XcodeのStoryboardに似ており、注目されているコンポーネントです。

 

3人目は@AkihiroTokai 様より、実際にGoogle IO 2018に参加されたレポートの発表でした。

現場の写真をたくさん見せて頂き、当日の臨場感をたくさん感じられる発表でした!

LT大会

1人目は弊社の森嶋より、WWDCで発表されたiOS12におけるUITextContentTypeについての発表でした。

IMG03137

ユーモアを交えた発表で、会場からは笑いがあり、LT大会ならではな感じがあってとてもいい雰囲気でした!

UITextField iOS12 from kenta morishima

最後は私がGoogle IOでも会場で実際に触る場所が設けられた、Google Codelabsを実際に触ってみた感想について発表しました。

意外とハマり所もありますが、非常に良いツールですので皆さんにも触ってみて頂きたいです。

Google Codelabsをやってみた from furusin

 

懇親会の様子

 

簡単ですが食事を用意し、前回に引き続き好評頂きました!

IMG_20180615_195730749

IMG_20180615_195711721

今回から、ティーンズやソフトドリンク派な皆さん向けにステッカーを用意しました。

IMG_20180615_200501595

これで間違ってお酒を勧めてしまい「あああ・・・すみません・・・」を減らす対応ができました。

まとめ

参加した皆さんもたくさんTwitterでツイートしてくださり、とても盛り上がった勉強会となりました!

懇親会でお話した方から「とても楽しいからまたやってほしい!」というお声を頂きましたので、

是非ともまた開催したいと思います!


2018年06月4日

furusin

フリュー主催の勉強会を開催しました!

IMG02937

 

こんにちは!ピクトリンク事業部サービス開発2課の古川です。

5/25(金)に、先日告知していました勉強会を開催しました。

30名程度集まれば大成功かな、と思っていたところに55名もの方が参加してくださり大盛況となりました。

また、ハッシュタグ #KyotoDevCafe でもたくさんツイートがありました。

今回はそのレポートをお送りします。

勉強会の様子

大盛況となったことから、多少席が詰まってしまったことは申し訳ない限りです。

ですが皆さん発表者のお話を食い入るように聞かれていました!

こちらは始まりの挨拶の様子です。

IMG_20180525_190353

初めてAndroidアプリを作ってみた話やiOSのニッチな話、

Swiftをアプリからサーバサイドまで使い倒した話まで幅広く発表いただきました!

懇親会の様子

簡単ですが弊社よりケータリングを用意しました!

IMG02949

カツサンドが非常に好評でした!

運営メンバーも美味しくいただきました。

また、懇親会中に弊社荒木より突発的LTがありました!

IMG_7554

このLTは本当に突発的でしたが意外とウケていたようで、非常に好評でした!

最近流行りのVRに関した発表で、Daydreamを持ってきて装着していました。

 

全体を通して

今回は「モバイル」という少し広めのテーマでの開催となりましたが、Android/iOSのバランスがが丁度よく、開場も盛り上がっていました。

また、難易度もコアな発表から初心者向けのものまで幅広く、多くの方に楽しんで頂ける内容になり、

運営として非常に嬉しい限りです。

初めての開催でしたので拙い部分もあったかと思いますが、どんどん回数を重ねてより良い勉強会にしていきたいと思っております。


2017年03月17日

araki

DroidKaigi 2017 に参加しました。会場の様子をレポートします!

コンテンツ・メディア第1事業部の荒木です。ピクトリンクというプリントシール画像を使ったアプリの Android 版を開発しています。

前回の記事では、DroidKaigi 2017 の参加前レポートを書きました。今回は、DroidKaigi 2017 の参加後レポートとなります。ほとんどのセッションはスライドと動画が公開されるようなので、この記事では DroidKaigi に参加できなかった方に向けて、会場の様子をお伝えします!

DroidKaigi とは?

※ 前回の記事と同じ内容を、再掲いたします。

公式サイト より引用:

DroidKaigiはエンジニアが主役のAndroidカンファレンスです。
Android技術情報の共有とコミュニケーションを目的に、2017/3/9(木)、3/10(金)の2日間開催します。

DroidKaigi とは、Android エンジニアのカンファレンスです。参加者は500人を超え、日本国内の Android カンファレンスとしては最大級の規模を誇ります。2015 年から開催されており、今回の DroidKaigi 2017 で3回目の開催となります。私は今回が初めての参加となります。

会場の様子

会場の様子をレポートいたします。今回の会場は、ベルサール新宿グランド コンファレンスセンターでした。

セッション

セッションルームは全部で6つありました。どのセッションも多くのエンジニアが発表を聞きに来ており、人気のセッションでは立ち見の人が出るほどでした。写真は Room3 の真ん中くらいから撮影したもので、私の後ろにもたくさんの聴講者がいました。

Session Room3

Session Room3 の様子

ランチ、おやつ

会場には、お菓子部屋がありました。各社のロゴの入ったお菓子や、マフィンなどがおいてあります。運営の方曰く、無限に湧いてくるとのことでした。

IMG_20170310_095808

 

他にも記念撮影スポットがあったり、

IMG_20170309_184112

 

バリスタの方がコーヒーを淹れてくれるというサービスもありました。常に長蛇の列ができていて、私は飲みそびれてしまいました。。

オフィスアワー

各セッションの後には、オフィスアワーが設けられました。オフィスアワーでは、発表者の方が質問やフィードバックを受けるために、お菓子部屋にしばらく滞在していました。発表者の周りには多くのエンジニアが集まり、発表内容について熱い議論を交わしていました。私もオフィスアワーで議論に参加したり、発表内容に関する疑問をぶつけてみたりしました。こうした貴重な経験は、カンファレンスに参加したからこそ得られるものだと感じました。

 

こちらのセッションのオフィスアワーで、MVVM について発表者の方と議論を交わしていました。とても楽しかったです!

アフターパーティー

全てのセッションが終わった後のアフターパーティーの様子です。ここでも、たくさんのエンジニアの方たちと交流することができました。

IMG_20170310_183106

 

寿司職人が握るお寿司。去年もあったそうです。大人気で、すぐに売り切れてしまいました。

IMG_20170310_191355

 

遠いですが、運営責任者の mhidaka さんが壇上にいらっしゃいます。この後、運営スタッフの方々に会場全体から感謝の拍手がありました。スタッフの方々のおかげでカンファレンス中、気持ちよく過ごすことができました。ありがとうございました!

IMG_20170310_202008

さいごに

今回は、DroidKaigi に参加できなかった方に向けて会場の様子をお伝えしました。楽しそうな雰囲気が伝わって「来年は DroidKaigi に参加するぞ!」と思っていただければ幸いです。私は来年も参加する予定ですので、ぜひみなさんも参加しましょう!


2017年03月2日

araki

DroidKaigi 2017 に参加します!

コンテンツ・メディア第1事業部の荒木です。ピクトリンクというプリントシール画像を使ったアプリの Android 版を開発しています。

弊社はエンターテイメント分野を扱っており、クレーンゲームの商品も作っているので、SNSなどで人気が急上昇した「けものフレンズ」の商品は作らないのかと思って調べてみたら、流行する前に作ってもう終わっていたようです。

 

今回は、DroidKaigi というカンファレンスの紹介をします。また、公式アプリの OSS 活動に参加したことや、気になるセッションの紹介など、参加前の現状について報告します。

DroidKaigi とは?

公式サイト より引用:

DroidKaigiはエンジニアが主役のAndroidカンファレンスです。
Android技術情報の共有とコミュニケーションを目的に、2017/3/9(木)、3/10(金)の2日間開催します。

DroidKaigi とは、Android エンジニアのカンファレンスです。参加者は500人を超え、日本国内の Android カンファレンスとしては最大級の規模を誇ります。2015 年から開催されており、今回の DroidKaigi 2017 で3回目の開催となります。私は今回が初めての参加となります。

公式アプリの OSS 活動

昨年、公式アプリが OSS(オープンソースソフトウェア)として GitHub に公開され、多くの人にコントリビュートされていました。今年も以下のリポジトリで OSS 活動をされています。多いときは1日で40件ほどのPR(プルリクエスト)が出されたそうです!

https://github.com/DroidKaigi/conference-app-2017

昨年もそうですが、技術的知見が詰まったリポジトリだと思います。Data Binding, RxJava, Dagger2, Retrofit など、第一線のAndroidアプリ開発で使われている技術やライブラリの使われ方を見られるので、ソースコードを眺めているだけでも勉強になります。

また、コントリビュートを目指して PR を出してみるのも刺激的で楽しいです。私も、簡単な修正ですが3つほど PR がマージされて、晴れてコントリビューターとなることができました。コントリビュートしてみたいという方は Issues の「welcome contribute」ラベルがついたものに取り組んでみてください。

セッション紹介

個人的に私が気になるセッションをいくつか紹介いたします。

How to apply DDD to Android Application Development

あんざいゆき(yanzm) さんが発表されます。ドメイン駆動設計(DDD)を Android アプリに適用する話です。最近、「エリック・エヴァンスのドメイン駆動設計」という本を読み始めて、DDD に関心があるので Android の分野ではどのように適用されていくのかという話には非常に興味があります。ドメイン駆動設計の本はまだ読破していないので、当日までに読みきって臨みたいと思います。

大規模アプリのリノベーション

北村涼 さんが発表されます。初回リリースから5年続く「はてなブックマーク」を大規模改修した話をされるそうです。弊社のアプリも初回リリースから少しずつアップデートを続けた結果、コード改善の必要性が増しているように感じるので、どういったステップでリノベーションが実施されたのかを聞きたいです。

エンジニアが武器にする Material Design

瀬戸優之 さんが発表されます。Google が提案している Material Design というガイドラインについての話です。社内のデザインフローや Material Design を社内に広める方法についても話されるようなので、他社ではどのようにアプリのデザインと向き合っているのかという部分に興味があります。

さいごに

この記事では、DroidKaigi というカンファレンスの紹介、および参加前の現状について報告させていただきました。DroidKaigi では多くの Android エンジニアの方々と技術交流ができるということで、参加前から非常にワクワクしております。参加した後も、実際にどのような雰囲気だったのか、どういった知見を得られたかなどを記事としてお伝えできればと思います。

 

以上です。


2016年12月19日

araki

SQLDelightの紹介

この記事は、Androidその2 Advent Calendar 2016 の12/18の記事です。

はじめに

コンテンツ・メディア第1事業部の荒木です。ピクトリンクというプリントシール画像を使ったアプリのAndroid版を開発しています。今回は、Androidアプリのデータベース管理で使えるSQLDelightというプラグインの紹介をしたいと思います。前回の記事で紹介したSQLBriteと組み合わせて使うと強力です。

SQLDelightとは?

square/sqldelight

SQLDelightは、一言でいうとSQL文からJavaのファイルを自動生成するプラグインです。たとえば、以下のようなSQL文が書かれたUser.sqというファイルを作成してビルドをかけます。

すると、SQLDelightはUser.sqを解析して、UserModel.javaというファイルを生成してくれます。

たった4行のファイルから、たくさんのコードが自動生成されましたね。これだけだと何に使うかわからないと思うので、次に具体的な使い方について説明します。

使い方

まず、UserModelを実装したクラスUserを作成します。AutoValueを利用すると以下のように短いコードで書けます。

各種定数

UserModelにはテーブル名やカラム名、テーブル作成用のSQL文が定数として定義されています。たとえば、SQLiteを使う時に作るであろうSQLiteOpenHelperの継承クラスで、テーブル定義をする際にテーブル作成用のSQL文を利用できます。

Mapper

UserModelで定義されているMapperを使えば、データベースの取得結果であるCursorをUserクラスに変換することができます。

Marshal

UserModelにはMarshalと呼ばれるContentValuesのビルダーも定義されています。以下のようにINSERTするときや、UPDATEするときに利用できます。

Pros / Cons

SQLDelightのメリット(Pros)とデメリット(Cons)に関する私の意見です。

Pros

テーブルの定義をSQLで書くことができる点がSQLDelightのメリットだと思います。ORMライブラリは手軽で便利ですが、ORMの仕様に依存してしまうというデメリットがあります。つまりORM側の問題に依存してしまうというリスクがあります。これに対し、SQL自体を扱うSQLDelightは、SQLで出来ることなら何でもできるという点が強みだと思います。また、シンプルにSQLでテーブルを操作できるので、複雑な問題が発生しにくいのではないかと考えています。

Cons

デメリットとしては、SQLの学習コストがかかることがまず挙げられます。SQL自体はできることが多いですが、使いこなすにはそれ相応の知識が必要だと思います(私にはありません)。また、クラスのGetter, Setterのメソッド名がAutoValueの形式(User#name(), User#_id(1) など)となっていたので、個人的には見慣れないなと感じています。

まとめ

この記事では、SQLからテーブルを表すクラスを生成してくれるSQLDelightというプラグインを紹介しました。RealmなどのNoSQLのライブラリも盛り上がっていますが、SQLのパワフルさを活かしてみたいという方は、一度試してみてはいかがでしょうか?