eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

Google Play Services Gradle Plugin 4.1.0の問題点

既知の問題点 Gradle Pluginバージョンは com.android.tools.build:gradle:3.3.0-alpha10 google-services.jsonを検索しない 考えうる限りいろんなpathにおいたけど反応なし ログも --debug オプションで見たが吐き出されない 完全にnot workingらしい 4.0.2…

AS3.3 canary-11の問題点

問題点 Find Action(Ctrl + Shift + A)が正常動作しない たまに正常動作する だいたい正常動作しない Crash Reportが吐き出されてるので、どっかのPluginと競合している Reportは送った 以前はFlutter Pluginと競合していたので、uninstall済み Dartも怪し…

QRコードをスキャンする仕様で注意すべきこと

QRコードもカメラも物理デバイスである QRコードは対象物の物理サイズにも留意して作成する 小さすぎると、カメラに映ってもオートフォーカスが正常動作しない場合がある レンズが汚れていると更に辛い フロントカメラは概ね低スペックなので、バックカメラ…

VIVITA社に転職しました

FROM 以前のエントリーの通り、8月31日で TOPGATE社 を退職しました。 TO 9月1日から、 VIVITA 所属となり、子どもたちがアイディアを形にするための環境づくりを行います。 Androidアプリ開発やサーバー開発といった形で参加する予定です。 ほしいものリス…

CIや開発時のビルドタスク管理にfastlaneを導入した

導入前 shellスクリプトを必要に応じて書いていた どういうビルドタスクやスクリプトがあるのか、ドキュメントが面倒だった 導入した理由 ビルドタスクの一覧性を担保できる fastlane list でタスク一覧が表示される タスクを分類できる fastlane platform_f…

coroutines 0.24.x runBlockingの仕様変更と対策

変更されたこと runBlockingがUIスレッドからの呼び出しで例外を投げるようになった UnitTestの内部とかで使ったり、無理矢理coroutinesのChannelとかを待ち合わせる用途に使えなくなった 特にJVMでのUnitTestで使ってたので、全部死んだ // この呼び出しは…

Huawei P20 Proの所感

購入 / 選定理由 会社に開発端末(普段使いを兼ねる)を返却するにあたり、新規に端末が必要になった 選定で重視した点 ARCoreが使用できる 基本スペックが良い カメラ性能が良い 端末サイズは問わない 今まではサイコンにする兼ね合いからXperia Compact系…

TOPGATE社を退職します

今日社内で情報が公開されましたが、2010年から勤めていた TOPGATE社 を8月末で退職することとなりました。 トップゲートにいた7年10ヶ月 IT業界としては、かなり長く居たかと思います。 入社時点からAndroidがやりたくて転職して、基本的にはずっとAndroid…

Android Navigation Componentsのファーストインプレッション

本当に動くの? AS3.2.x系のNavigation Componentsは不安定で、だいたいNavigation Editorが正常動作しなかった AS3.3.x系でNavigation Components自体がExperimental機能として隠し扱いになった 今後もしばらくは不安定だと思う 末永く頑張っていただきたい…

Android Emulator(KVM/Ubuntu)でサウンドを有効にするとノイズが乗ることに対する対策

問題点 SMPlayerで動画を再生しながらエミュレータを起動するとプチプチとノイズが乗る コマンドラインからサウンド無効で起動する # ついでにCold Bootしたければ -no-snapshot オプションでできる emulator @your_avd_name -no-audio -no-snapshot Desktop…

Android エミュレータのAMD CPU(Hyper-V)サポートの所感

公式情報 android-developers.googleblog.com 書いてあるとおり、 Windows Hypervisor Platform を有効化しないと起動できない Hyper-Vを有効化しているだけだと、Hypervisorは有効化してない場合があるので注意 動作の感想 ちゃんとDocker for Windows環境…

システムレイヤーにOpenGL対応Viewを追加する

Manifest設定 システムレイヤーへの描画は専用のPermissionがある <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> WindowManagerでViewを登録 レンダリング用のViewとタップ用のViewを分けると設計が楽になる場合がある SurfaceViewは軽量だが、View移動ができない OpenGL側でViewportを調整してあげると</uses-permission>…

Android Studio 3.2-Beta1 導入

Experimental設定が追加 Navigation Editorが標準で無効化された 新たに Settings > Experimental が追加された そこで有効化できる 旧バージョンからアップデートしてビルドが通らない ~/.gradle/ を削除することで復旧できる ASの場合は Invalidate Caches…

Unity学習 よくあるJoystickの移動系を再現する

よくある入力系とは 左スティックで移動する スティックを上(奥)に倒すと画面奥方向に移動 スティックを下(手前)に倒すと画面手前方向に移動 スティックを左に倒すと画面左方向に移動 スティックを右に倒すと画面右方向に移動 よくある入力系なので、ア…

ARCore for Unityの事始め

ARCoreのサポート端末 少し前にサポート端末が拡充された Nexus5X, Nexus6Pがサポートされた Xperia XZ1Compactもサポートされた 一般的に使うには辛い ARKitのほうは手軽で強い コアライブラリ ARCore by Google コアライブラリ これがないと始まらない ア…

Dockerで開発環境をポータブルにする

なぜDockerfileに記述するのか pullするだけでセットアップが終わる 手軽に再現できる 複数OSの上で同じ環境を使える WindowsやMacで作業中にLinux環境が必要になる場合がある OSや環境固有の問題なのか、別な問題なのかの切り分けを行いたい 開発環境のバー…

モバイル / サーバーサイドエンジニアの開発環境のセットアップ 2018 Q2

ハードウェア SSD 500GB以上をインストール パーティションを切ってWindows / Ubuntuでシェア M.2 SSD 2枚差し以上できると嬉しい RAM可能であれば32GB 環境の使い分け 主にWindowsとUbuntuを使い分ける 切り替える理由 モバイル開発ではコマンドラインを多…

Android Studio 3.2 Preview18 所感

Kotlinアップデート 1.2.50 ConstraintLayoutのpackage名がもとに戻っていた 幻だったのだろうか implementation/apiでbuild.gradleに記述した依存関係がビルドに反映されない Jetifierが悪さをしている可能性がある こいつらを gradle.properties から外す…

Unity学習の整理 Inputの基本

InputManager Edit > Project Settings Input でInspectorが開ける 各入力のデフォルトを指定できる 項目名 Horizontal Vertical とか Fire とかの定義もここに入れられる 直近nフレームの入力を得る UniRxで書くとこうなる UniRx標準では Cache に相当する…

JetBrains Riderで適用されるCodeStyle

環境ごとのデフォルト Ubuntu(Linux)とWindowsでデフォルトフォーマッタが異なる 大きいところではブレス class Hoge { のブレスが K&R style と BSD style で異なる Visual StudioのReSharperでいじってしまったからだろうか 基本的にはC#の基本的なコード…

AndroidStudio 3.2-Canary17の所感

Moduleの依存グラフが表示されるようになっていた いつからだろうか Build Variants > i アイコンから見れる 依存Moduleの依存は見れない app > sdk > ktx のような依存グラフにはなってない そのうち改善される? Android API-28公開 これでライブラリ公開…

Unity学習の整理 Animatorの基本

UnityChanをアニメーションさせる 参考書 UNITYゲームプログラミング・バイブル UniRx オペレータ逆引き Animator 複数Layerが配置できる Layerは Baseが身体本体の歩きモーション 表情モーション のように組み合わせられる UnityChan付属のAnimator UnityCh…

RangeBarで始めるCustomViewとDataBindingとMVVM

どういうことがしたいのか こんなUIをMVVMで簡潔に実現したい。 ユーザーに心拍数(下限、上限)等の一定範囲データを設定させる その際、実装コストを減らしたい なるべく現代的に仕上げたい UIは RangeBar を利用する RangeBarを操作すると、対応する値が…

Unity学習の整理 UnityEditorでC#のUnitTest

C#でコードを書くにあたって、UnitTestができたほうが安心できるので調べた。 UnitTestの方法 UnityEditorに組み込まれたUnitTest Runnerが使用できる NUnit相当の機能が使える テストプロジェクトに癖がある Create > Testing でTestsディレクトリを作成可…

Unity学習の整理 連携する統合開発環境

開発環境は必要に応じて最適なものを使いたい。 Unityでアプリを開発するにあたって、選定を行った。 C#プロジェクトエディタの選定 Microsoft VisualStudioとJetbrains Riderが候補 色々勘案した結果、現在はRiderを使っている Visual Studioの利点・欠点 U…

Unity学習の整理 Unityについての所見

なぜゲームエンジンを覚えるのか 個人的に、Unityで何か作ってみたくなった フルスクラッチのレンダリングエンジン(以下、フルスクラッチ)に比べて大規模開発に向いている フルスクラッチに比べて柔軟性は欠ける 例えばAndroidのSystem-Layerにレンダリン…

Android NDKでprotocol buffersを利用する

Protocol Buffersとは Protocol Buffersは2008年の7月7日=鑑純夏さんの誕生日にGoogleが公開したデータシリアライズ・デシリアライズライブラリです。なお、七夕は雨です。 IDLという独自のテキストフォーマットでデータを記述し、複数プラットフォーム間で…

複数スレッドでGLの処理が可能なGLSurfaceView作りました

複数スレッドでGLの処理が可能なGLSurfaceView作りました Githubで配布しています https://github.com/eaglesakura/multicontextglsurfaceview 何が出来るのか GLSurfaceViewを継承したクラスです。動作には互換性があり、GLSurfaceViewをMultiContextGLSurf…

Mac OSでPerfHUD ESを利用してNexus7のOpenGL ES負荷を測定する

Mac OSでPerfHUD ESを利用してNexus7のOpenGL ES負荷を測定する いろいろあってヨドバシポイントを2万円分手に入れたので、検証機としてNexus7を購入しました。Nexus7はTegraを搭載していて、便利なツールがMacでも使えるので、そのメモです。 標準ツールで…

Android NDKで"Unknown Application ABI:" エラーが発生した場合の対症療法

Android NDKのデバッグは容易になった・・・はずなのに Androidアプリは基本的にSDKを利用し、Java言語で記述します。ですが、Android NDKを利用することでC/C++言語でもアプリを記述できるのは周知のとおりです。 最初は「できるやつだけついてこい」的にほ…