省エネ

Flutter、vue3修行中。

React Native勉強会へ行ってまいりました

今日はこちらの勉強会へ行ってきました。

 

d-cube.connpass.com

 

 

React.jsは書いたことがないので、どういうものかさっぱりなのですが、

angular2を書いたことがあるのでなんとなく雰囲気はつかめました。

 

書き方は似ていますね。

 

javascriptは嫌いじゃないですが、セミコロンがちょっとうざい感じですよね。

 

angular2だと公式がTypeScriptやDartで書いてjsにコンバートする仕組みを作ってくれているのでjavascriptを直接かかなくてもいいのですが、Reactにはそういうのないんでしょうかね。

 

 

ここのところお仕事でもセミコロンのない言語を使っているので、なんとかセミコロンとはさよならしたい。

 

sites.google.com

 

ちゃんと調べてないのですが、Kotlinでもこんなことができそうなので、

もしかしたらKotlinで書いてjavascriptを吐き出してReact NativeでiOSアプリを作るとかできるかもですね。

 

Androidで動くViewを改造してみました。

これなんですが、

github.com

 

github.com

 

こちらの「GestureTransformableView」を改造してみました。

 

丁度お仕事で作っているアプリでTextViewを動かす処理が必要になりまして、

こちらのOSSを使ってみようかと思ったのですが、ちょっと色々やってみたいことがあったので、ソースを流用して改造することにしました。

 

 

やりたいこと

・Kotlinにする

・TextViewも動かせるようにする

・AndroidStudioプロジェクトにする

 

qiita.com

 

この辺を参考にライブラリプロジェクトを作成して、

Kotlinが使えるようにしておきます。

GestureTransformableViewのファイルをコピーします。

 

とりあえずはConverterを使ってktファイルに直します。

 

元のソースだと動くImageViewしかないのですが、今回はTextViewも動かしたいので、

ImageViewをコピーしてTextViewバージョンを作ろうとしたのですが、

どうやらViewとdetectorで相互に参照しているところがあって、単純にコピーで増やすことはできなそうです。

 

しかたがないので、改造!

 

detector側からViewのインナークラスを参照していたところをinterfaceを使ってデータのやりとりをするようにしてみました。

 

これでいくらでも他のViewをコピペで増やすことができるようになりました!

めでたしめでたし。

 

このままjCenterに公開したかったのですが、

なんだかうまくいかなかったので諦めました。

 

github.com

 

こちらのライブラリを使ってBintrayにuploadしようとしたのですが、

まずKotlin使っているとjavadocが作れずにBuildErrorになっちゃいます。

 

そこはgradleに

afterEvaluate {
tasks.findByPath(":gesturetransformableview:mavenAndroidJavadocs").enabled = false
}

って追加すればjavadocを作るタスクを省いてくれるのでクリアできたのですが、

肝心のuploadのところで認証エラーになってしまい、何が原因なのかよく分からないので諦めました。

 

またいつか頑張ろうと思います。

Android Bazaar Conference 2016 Autumnへ行ってきました。

japan-android-group.connpass.com

 

 

今日は生憎の雨でしたが、こちらのカンファレンスへ行ってきました。

会場は柏でちょっと遠かったですが、とても綺麗な会場でした。

 

Androidの会の人たちや、Androidアプリを作っている会社の人たちが自分たちの作ったアプリを紹介しているブースや講演なんかをやっていました。

 

本当は10時から行って午前の講演もききたかったのですが、昨夜はお酒を飲みすぎて電車で最寄り駅を通過してしまい家に帰るのが遅くなってしまい朝、起きれませんでした。

 

全体的にIotの話やアプリが多かった気がします。

 

農業とアプリとクラウドを組み合わせたりとか面白いですよね。

あと、機械学習ですね。

 

そして、ハンズオンなんかもやっているので私はXamarinハンズオンに参加してきました。

 

jxug.connpass.com

 

 

XamarinはC#で書くんですが、JavaでもアレだったfindViewByIdの書き方がやっぱりアレだなって思いました。

 

あと、Clickイベントの書き方がちょっと特殊だなって思いました。

あれがC#ラムダ式なんでしょうか。

 

XamarinでもButterKnife的なライブラリがあればもちょっと綺麗に楽に書けるんですが。

 

いろんなプラットフォームのアプリが1つのコードでできるのは大変便利ですが、やっぱりAndroidだけ作るならKotlinが最高に便利だなって思いました。

 

今日の発表は後日youtubeに配信されるので、今日行ってない方はyoutubeチェックしてみるといいと思います!

 

AmebaTV Developer Conference へ行ってきました

abematv.connpass.com

 

先日、こちらのカンファレンスへ行ってきました。

ちょうどお仕事でも動画をやっていたので、

動画をネイティブアプリに実装する方法や苦労など、

いろいろ共感持ちつつ、なるほどなっていうお話が多くて面白かったです。

 

資料等はこちらから見れそうです。

AbemaTV Developer Conference 2016

 

Web、iOSAndroid全てでFluxを採用してるみたいですね。

なるほど、FluxというとWebなイメージでしたがネイティブでも有効なんですね。

 

結構具体的な実装方法を教えてもらいましたので、

丁度お仕事でiOSアプリを作ろうかと思っていたのでFlux使ってみようかと思います。

 

 

あ、あと、AndroidはKotlinで作ってるみたいで、羨ましかったです。

弊社でもKotlin使いたいけど、一緒にやる人達がガチ初心者っぽいので最初はJavaにしてあげるのが親切なのかなぁって思います。

 

 

【Android】Realmで画像を保存したい for Kotlin

最近、個人的にAndroidアプリをKotlinで作っています。

 

DBをどうしようかと考えた時にせっかくなので話題のRealmを使ってみようと思いまして、さっそく実装してみました。

 

さて、このアプリなのですが、

アプリの中で画像を端末から取得してDBに保存。

別の画面ではDBから取得した画像を表示。

 

という処理をさせたいのですが、SQLiteでこのような処理をさせたい場合にはDBの型をBlob型にしていたと思います。

 

しかし、RealmにはBlobがないのです。

あーどうしようと悩みに悩んで、別のSQliteのORMを使おうかとごにょごにょやったのですが、どれもイマイチだったりうまくビルドが通らなかったりで結局Realmに戻ってきちゃいました。

 

まー。

別にBlobがなくてもbyte[]があったんで、何も悩む必要はなかったんですけどね。

 

以下、私がどうやって画像を保存したかです。

 

 

Realmで画像保存 — Bitbucket

 

 

と、そんな感じでできました。

 

 

しかし、Realmだと、autoincrementができないんだそうで、

自前で今一番Idの大きいの+1とかしないといけないんでそこがちょっと不満です。

 

が、まぁmぁ今のところ快適に動いています。

 

まだMigrationの仕方がわかってないので、

もう少しいろいろ弄ったり調べたりする必要がありそうです。

 

 

【VR】WebVR勉強会へ行ってきました

eventdots.jp

 

本日はこちらのWebVR勉強会へ行ってきました。

 

WebVRを使いたい方はこちらを熟読!

developer.mozilla.org

 

WebVR対応ブラウザが知りたい方はこちら!

 

Is WebVR Ready?

 

WebVRコンテンツが作りたい!

そんな時、これが便利そう。

 

github.com

 

マークアップ言語的なものでオブジェクトが作成できする。

A-Frame Editorなるものもあるようですが、サイトを見つけられませんでした。

まだ開発途中だそうです。

 

 

しかしながら、なんといってもやっぱりVRコンテンツを作るにはUnityが便利そう!

 

 

ってことで、

GitHub - gtk2k/Unity-WebVR-Assets: UnityでWebVRに対応したWebGLビルドを行うテンプレートおよびアセット

 

 

こちらをDLしてUnityに読み込ませてやると、UnityとWebGLとがやりとりできる仕組みがすぐに作れて便利!!

 

ってことでした。

 

 

まだWebVRは対応しているブラウザも少ないし、まだまだこれからって感じでしたが、

どんどん盛り上げていこうぜ!

って感じでした。

 

【Android】RxJavaでHello, World!

さて、来月から他社へ協力会社社員として出向することになっているのですが、その会社からこんな指令が下りてきました。

 

『RxJava勉強しといて。

あ、あとretrolambdaも使ってるから、よろしく!』

 

掻い摘んで説明するとこんな感じでした。

ふむ、今まで気にはなっていたけどついぞ使わずに来てしまったリアクティブ系のライブラリを使う時がきたようだ。

 

ってことで、とりあえずHello, World!しました。

ちなみに、Androidです。

ソースはこれ。

 

RxJava Hello, World! — Bitbucket

 

内容はいたってシンプル。

Ovservableのfrom()に["Hello,", " World!"]というStringの配列を渡してあげます。

fromはリスト、配列を引数にとるメソッドです。

次にreduce()を呼びます。

これは、要素どうしを集積するメソッドです。

このソースだと、pが今までのcが現在の要素です。

ラムダ式を使って(p, c) -> {/* 処理 */}って感じに書き直してみました。

っていうか1行だからここはわざわざ{}しなくても良かったですね。

「.reduce((p, c) -> p + c)」でもOK。

でsubscribe()でTextViewに結果を表示しています。

 

すると、画面上のTextViewnにはhellos配列に書かれた文字列が連結されて「Hello, World!」と表示されます。

 

他にもズンドコキヨシとかやってみましたが、こちらはどこかのブログで紹介されてたコードをまるっと書き写しただけなので割愛。

全てメインスレッドで処理されていて、キヨシがでるまで画面が真っ白なのでいつか改善したいです。

 

とりあえず、簡単な使い方は分かったかしら。

RxJavaの機能は凄く沢山あるので、出向のその日まで色々試してみようと思います。