省エネ

Flutter、vue3修行中。

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の機能は凄く沢山あるので、出向のその日まで色々試してみようと思います。

 

 

【雑談】カヤックさんのお仕事展へ行ってきました&反省文

atnd.org

 

去る、2016年5月21日にこちらカヤックさんのお仕事展へ行ってきました。

これはどういう催しかといいますと、お仕事展と同時に1社だけの合同説明会というのも開催されておりまして、転職社向けの説明会とカヤックさんの作った作品の展示ですね。

 

結論からいうと凄く、面白かったです。

14時頃に入場し、エレベータを上がるとそこには長蛇の列が!!

 

何事か!?

と思うとVRコンテンツで遊ぶ為の整理券の列でした。

 

その列の脇をすり抜け、受付を済ますとパンフレットがもらえましたので、そこに書かれたフロア地図をみながらおめあての「つくっていいとも」会場へ。

 

私はこれが見たかったんですよ!

会場はちょっと狭めの会議室の1室でしたが、もう人がはみ出る程の大盛況でした。

 

つくっていいともというのは、カヤックさんの社内イベントで、月に1回、個人がこそこそ作っているものを発表する会なのだそうです。

 

凄く楽しいですよね。

弊社にも導入したいです。(弊社では消極的な人が多いので難しそうですが。)

 

内容は本当に多種多様。

webアプリだったり、webコンテンツだったり、デバイスだったり、ライトセイバーだったり。

なんでもありです。

こういう発表から刺激を受けてまた新たなものが誕生したり、すでに商品レベルに達しているものもあったり。

こうやって素敵な作品は世の中に出て行くのですね。

 

私も頑張ろう。

そう思った1日でした。

 

 

ところで、タイトルの後半反省文なのですが、このブログを作った当初(とはいえまだ半年前くらい)は毎日ブログを書こうと思い立って始めたのに、履歴を改めて見てみると月に1記事書いてるかかいてないかくらい。

ちょっと反省してもっと更新頻度をあげようと思いました。

ネタを出せるようにもっと色々やっていかないといけませんね。

 

そんなことを思った今日この頃でした。