fkm blog

software開発に関することを書いていきます

モケラボブログ

週刊で記事を出してみようというコンセプトで、モケラボブログを始めることになりました。 blog.mokelab.com しばらくはAndroid基礎講座的な内容が続く予定ですが、「こんな記事があったら読みたい」というのがあれば、どうぞ

TypeScript + Firebase + npmでCannot find moduleと言われた話

結論から言うとしょーもない話だったんですが。 Firebaseのライブラリは <script> で読み込む方法は紹介されてるけど、 npm でインストールしてES6のimportで使う方法はあっさりとしか書いてなかったりする。 まずはインストール $ npm install --save firebase そし…

Google I/O 報告会 in 福岡 2019

これに参加して、Android QとAndroid Studioに関してお話してきました。 gdg.connpass.com 福岡のI/O報告会はここ3年ほどは参加してるけど、参加者がとにかく若いのが特徴的。「コードなんて書きませんよガハハ」的なおじさんほぼいない感じ。 来年はもっと…

Google I/O 2019: What's New in Architecture Components

youtu.be 2年前のI/Oで、Archtecture Componentとして Lifecycle と Room が発表された。その後ページングが追加され、去年のI/OではナビゲーションとWorkManagerが追加された。 プロの開発者の70%が、これらのうち1つ以上をアプリにいれて使っている。 開発…

Google I/O 2019: What's New in Kotlin on Android, 2 Years In

youtu.be KotlinがAndroidの公式言語になって2年。決定自体は3.5年前ほど前。コミュニティとかに聞いてもKotlinが好まれていた。 Kotlin foundation Kotlin言語を保護/推進/高度にするためにJetbrainとGoogleによって作られた。ボードメンバーは - 2人がJetb…

Google I/O 2019: Understand Kotlin Coroutines on Android

Kotlin系いきます。 youtu.be 理想的なコード こんなコード、書けるといいよね。 val user = fetchUser() // ネットワークからユーザー情報をとってくる textView.text = user.name でも、当然ながらUIスレッドでこんなコード書くと、 fetchUser() が Networ…

Google I/O 2019: What's New in Android Development Tools

youtu.be Android Studio 3.2 去年のI/Oでは、Android Studio 3.2が発表された。App bundleやナビゲーションエディタなど。 Android Studio 3.3 今年(2019年)1月にAndroid Studio 3.3がリリースされた。プロジェクト作成ウィザードの刷新や、単一variantのsy…

Google I/O 2019: Overview of Privacy Changes in Android Q

youtu.be Android Qでのプライバシーに関して。あれAmphitheatreなのに18分しかないぞ? Android Qでは50以上のプライバシー/セキュリティに関する機能が追加。 Permission Android 6.0でRuntime Permissionが追加された。 ところで、ユーザーがpermissionに…

Google I/O 2019: Best Practices in Using the Android Emulator

youtu.be Androidエミュレーターに関するセッション 昔のAndroidエミュレーターは遅く、実機が必要だった。 3年前、エミュレーターは爆速になった(冗談抜きで) 2年前、Google Play入りエミュレーターが登場した。 去年はスナップショット機能が追加された…

Google I/O 2019: Build Apps for Foldable, Multi-Display, and Large-Screen Devices

折りたたみスマホや、複数ディスプレイに関するセッション youtu.be Foldable Device 折りたたみデバイスには2種類ある fold in: 谷折り。ディスプレイ名が重なるように折りたたむ。Galaxy Foldがこちら fold out: 山折り。ディスプレイが外側になるように折…

Google I/O 2019: Updating Your Apps for Location Permission Changes in Android Q

現地で聞いてないセッション。「位置情報に関する更新はだいじ!」と何名から言われたので早めに確認します。 youtu.be Android Qでは、ユーザーにとって - シンプルで(simple) - 発見しやすく(discoverable) - 理解しやすい(easy to understand) 位置情報デ…

Google I/O 2019: Android Studio: Tips and Tricks

Android Studioを使い倒すためのセッション。何度も巻き戻しながら操作を確認したほうがよいです。 youtu.be 全編デモというなかなかにクレイジーなセッション。 プロファイラ Command+Shift+up でウィンドウの大きさが変更できる。 メモリプロファイラ Comm…

Google I/O 2019: What's New in Android Studio UI Design and Debugging Tools

Android Studio使いこなそうシリーズを先に解説。講演やるので。 youtu.be このセッションは、UIデザインのためのAndroid Studioの使い方編。 レイアウトエディタ BlueprintModeを使ってみよう。コンテキストメニュー(右クリック)を使うと、例えば「中央に…

Google I/O 2019: Build a Modular Android App Architecture

youtu.be 動画の終盤でTL;DRが出てるけど、「アプリをモジュール使ってrewriteしよう」というセッション。 どうやってAndroidアプリをモジュール化するかがテーマ。 なぜモジュール化する? エンジニアが増えてきたとき、お互いの作業をストップさせないよう…

Google I/O 2019: What's New in Android

www.youtube.com なぜか冒頭の数分が録画されていなかったようで、いきなりBubblesの説明の途中から始まる。。。 Bubbles Facebookメッセンジャーのような、他のアプリの上に重ねて何かを表示するための機能。今まではSYSTEM_ALERT_WINDOWにViewを追加するこ…

Google I/O 6日目

最終日はフライトが15時50分だったので、スタンフォード大学に寄り道。 Hoover Tower

Google I/O 5日目

土曜日はデプロイ肉に初参加。今までは帰国日と重なったりしてて参加できてなかった。 会場はデプロイゲートさんのUSオフィス。約100人ほど参加だったらしい。 deploygate.com イベント詳細はhttps://www.eventbrite.com/e/deploy-niku-2019-meatup-for-deve…

Google I/O 4日目

I/O自体は3日目で終了ですが、旅は続くので4日目。 1日空いてる日だったので、お昼ぐらいからComputer History Museumに行ってみた。中の展示をたっぷり2時間ほど。教科書で見たようなコンピューターがたくさん展示されているので、この業界に関わる人は一度…

Google I/O 3日目

あっという間に3日目。15時半からのセッションでおしまいの日。 今年のI/Oは「驚くべきもの」はなかったものの、着実に進歩してるなーと感じたI/Oだった。みなさんちゃんと勉強しましょう(圧 I/O終わってから某社の人をGoogle Merchandise Storeに招待。そ…

Google I/O 2日目

2日目は朝からずっとセッションの日。よって詳細は後日のエントリーにて。 14時にこれまた恒例の日本人大集合。にしても日本からの参加者多いなー 集合写真 夕方にNEAO(North-east asia and Oceania)な参加者のパーティに参加し、Googleの@taquoさんによるツ…

Google I/O 1日目

1日目はKeynote2つからスタート。今年はpre-showがスケジュールにちゃんと載ってた。 Keynote。8秒あたりのとこでチラッと映ってたりする。 www.youtube.com 午後からはDeveloper keynote。例年ここでお土産の話が出るけど、今年は残念ながら何もなし。 www.…

Google I/O 2019 0日目

Google I/O 0日目はBadge pickupの日。Pick up会場がオープンするのはAM7時から。 このAM7時付近でpick upするために、マイナス1日目から現地入りする必要がある。というのも、keynoteの席順は先着順で前の方に配置されるという仕組みなうえ*1、後方の席に配…

Google I/O 2019 マイナス1日目

記憶に頼るのもよくないので、ログ的に残しておこう。写真はあんまり無いです(たぶん 今年もなんとか当選しましたGoogle I/O。5月7日〜9日なので、5日に現地入り。 普段はANAで成田発なんだけど、今年はJALで羽田発にしてみた。はじめての羽田国際線。カー…

時代の変わり目

日本では年号という意味では、新しい時代に突入。 平成の時代には、何ができた? これからの時代は、何ができる?

乱数は外部で生成されるものとして扱う

例えばユーザーIDは乱数で決める仕様だったとする。 UUID v4でお手軽に生成し、万が一ぶつかったらリトライすることにする。 こんな感じのコードになると思う。 func InsertUser(db *sql.DB, email, name string) { st, err := db.Prepare("insert into user…

Flutter クックブック

単なる日記 Flutter、最初から高級な部品(=低レベルAPIのを組み合わせて作られてて、設定少なめ)がそれなりに揃ってるので、クックブック的なのがあるとよいのかも

ブラウザでファイルの暗号化(2)

AESの共通鍵をそのままメールとかで送ったりしたら、「パスワードzip」問題と同じなので、もうちょっといい感じで鍵を共有したい。 そこで登場するのが公開鍵暗号の仕組み。これ、Web標準のAPIに入ってたりする。MdNのドキュメント 鍵ペアを作る 鍵ペアもJav…

ブラウザでファイルの暗号化(1)

まずは暗号化/復号の部分。 Crypto-JS を使った。 $ npm install --save crypto-js $ npm install --save-dev @types/crypto-js 公式ドキュメント アルゴリズムとしてAESを使ってみる。 暗号化 input が暗号化したい文字列。key が鍵。鍵は短い場合、いい感…

ブラウザでファイルの暗号化(0)

https://fkmhrk.github.io/JS-AES/dist/index.html を作ってみた。もしかしたら会社アカウントに移行するかも。 Chromeでしか動作確認してまへん。

Ractive.jsで、コンポーネントを使う側でイベント設定したい

公式ドキュメント読んでも見つからなかったのでGithubのIssue探したら一応あった。 やりたいこと こんな感じでコンポーネントにイベントを設定したい。1つの画面に同じコンポーネントは複数配置したい。 <MyButton on-click="login"/> <MyButton on-click="signup"/> コンポーネント側をどうするか fire() を呼ぶように</mybutton></mybutton>…