メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

Kotlin/JSことはじめ

なんでもKotlinで解決したいと思いがちの筆者です。 Kotlin/JSを触ってみたので動かし方などまとめます。 環境は Kotlin 1.3.61 Node 13.3.0 です Setup Gradle Plugin kotlin js プラグインを使います。 build.gradle.kts plugins { kotlin("js") version "…

dartdocでAPIドキュメントを作成する

Dartで書かれたプロジェクトであれば、 dartdoc でドキュメントが自動生成できます。 $ dartdoc 自分が作りたかった理由はPluginのscoreを上げたかったからなのですが、ローカルで試すに当たり、Dart自体の、Pluginには不要なドキュメントが生成されてしまい…

2019年を振り返って

目標とか ジム通い 1月から通い始めていたのですが、目標週2ペースで行きたかったのですが、結果的には週1ペースでした。 体調崩したり旅行に行っていたことを考えると、継続できていたのかなと思います。 競プロ AtCoderを取り組んでたのですが、継続できま…

Flutter for WebのプロジェクトをGitHub ActionsでFirebase Hostingにデプロイする

タイトルのまんまです。 FlutterとFirebaseのバージョンは次のとおりです。 $ flutter --version Flutter 1.10.14 • channel dev • https://github.com/flutter/flutter.git Framework • revision 1946fc4da0 (12 days ago) • 2019-10-07 15:23:31 -0700 Eng…

GitHub ActionsでFlutterのPluginをリリースできるActionをMarketplaceに公開した

FlutterでPluginを作りたいと思ったらPubに登録するのが一般的です。 もともとGitHub Actionsでリリースできるようにしていたのですが、Pluginに依らずやることは同じなのでAction化してMarketplaceに公開しました。 github.com Marketplaceに公開までにあた…

パッケージが統合されたFlutter for Webへのアップグレード

Flutter for Webのパッケージがflutterに統合されました。それに伴い既存のFlutter for Webのプロジェクトでアップグレードが必要になったのでその記録です。 Upgrading まだstableには来てないのでdevに向けて、webを有効にします。 $ flutter channel dev …

技術書典7にFitbit本の続編を出した

先日開催された技術書典7にサークル参加しました。サークル参加としては2回目で、技術書典5以来なので1年ぶりの参加でした。 前回の参加記事はこちら sakebook.hatenablog.com 事前準備(執筆編) 1年ぶりで、結構色々忘れていました。 次の記事を参考に環境を…

DartでCloud Functions for Firebaseを動かす

最近FlutterでDartを触っているので、Dartでなにかできればなと思いました。 ちょっとした処理をしたくなって、Cloud Functions for Firebaseが使えればなと思い調べたところ、DartをJavascriptにトランスパイルしてCloud Functionsで利用できるようにするPl…

Flutterで秘匿情報を扱う

最近Flutterを触ってます。 Gitなどに載せたくない情報の扱い方についてのメモ。2つの方法を取り上げます。 .env + flutter_dotenv flutter_dotenvを使います。pubspec.ymlに以下を追加して pubspec.yml dependencies: .. flutter_dotenv: ^2.0.1 .. flutter…

DockerHubでAutomated Buildsを使った時にDocker Tagがうまく設定できない

OpenSSLでファイルの暗号化/復号化をしたくてAlpineベースのDockerイメージを作成しました。 github.com ググったら同じようなものがあったのですが、OpenSSLのバージョンやCA証明書が古かったりで使いにくかったので作成しました。 どのバージョンのOpenSSL…

2018年を振り返って

すでに2019年が10%以上過ぎてますが、2018年の振り返りをまとめてなかったのでまとめておきます。 はじめに目標としてたことに対して振り返ります。 目標としてたこと 自炊の回数を増やす 12月から自炊を再開しました。相変わらずパスタ一辺倒です。振り返っ…

Node.jsを使ったアプリケーションのサンプル集にlernaを使うと便利だった

先日参加した技術書典でFitbitのClock Faceの作り方に関する本を出しました。サンプルコードを添えたのですが、そこで使ったlernaが今回のようなケースと相性が良いと感じたので紹介します。 今回のケース 1つのリポジトリに複数のNode.jsのアプリケーション…

技術書典5でFitbit本を出すまで

技術書典5にサークルとして初参加しました。やったことや思ったことをつらつらと書きます。 参加の経緯や意気込みはこちらです。 sakebook.hatenablog.com 執筆の流れ スケジュール感などはこちらの記事を参考にしました。 執筆はRe:VIEWで行いました。と言…

技術書典5にサークル(う14)として参加してFitbitのClock Faceに関する本を出します

タイトルの通りです。 2018/10/08に開催される技術書典5に、サークルとして参加します。 サークル概要 サークル名は「sakebook」で、配置は「う14」です。 内容は「FitbitのClock Faceの作り方について」です。 techbookfest.org どうして参加したのか 前回…

2017年を振り返って

2017年の目標 ブログを20回以上更新 未達 GoとかPythonとかでWeb APIみたいなの作ってアプリに組み込み 未達 ライブラリにPRを送る 未達 設計力を高める 未達 やばいですね。。 ブログを20回以上更新 記事数は12本でした。間隔が空いてる期間がありますが、…

続続・Androidアプリ開発を学生に教えた話

今までと同じく、TRUNKから講師の依頼があったので講師をしてきました。 過去の話はこちらです sakebook.hatenablog.com sakebook.hatenablog.com 進め方 週一で、一回あたり2~3時間の全8回のコースで、全体を通すとおよそ2ヶ月のコースとなり、今までで最長…

Kotlinの可変長引数とフォーマット

Kotlinの可変長引数とフォーマットを利用した置き換えで詰まったのでメモ 可変長引数 メソッドの引数として定義するときは vararg を付けます。 fun someMethod(vararg args: String) { args.forEach { println(it) } } someMethod("one") // ok someMethod(…

JavaからKotlinに変換してSupport LibraryとMockitoとRobolectricでハマった話とその解決方法

先日勤務先で開発合宿に行きました。プロダクトのKotlin化が途中だったので、仕上げてきました。 スライドでは省略した、ハマった点の詳細を共有します。 確認できるサンプルを用意してあります。サンプルの環境は次の通りです。 Android Studio: 2.3.3 Supp…

BITRISEでPrivateなDockerイメージを利用してビルドする(Push時のみ)

自分のDockerイメージを作成したので、CIサービスでも利用して、環境を持ち運べるようにしたいなと思いました。 sakebook.hatenablog.com BITRISEがモバイルアプリのCIサービスとして良いという話を見かけたので、BITRISE上で自分のDockerイメージを利用して…

AlpineベースのAndroidビルド環境のDockerイメージを作成した

なるべく小さく、sdkmanagerにも対応させた、CI用のDockerイメージを作成しました。 Emulatorなどを利用したAndroid Testにはまだ未対応ですが、Unit Testは実行できます。 PublicなDockerHubに上げたかったのですが、ライセンス違反という話があるのでPriva…

RecyclerViewで複数のDividerを実装するライブラリ「MultiLineDivider」を公開しました

以前の記事で、RecyclerViewで複数のDivider実装する方法をまとめたのですが、これを使うには ItemDecoration を実装したクラスを作る必要がありました。 そのあたりをよしなにして導入できるライブラリを公開しました。 github.com 使い方 DividerItemDecor…

RecyclerViewで複数のDividerを実装する

RecyclerViewでは、Divider(区切り)は自分で実装しなければなりません。 標準の線を引く方法はよく見つかるのですが、複数の線を引いたり、逆に線を引かなかったりするというのがあまり見つからないのでまとめました。 Support Libraryに追加されたDividerIt…

DroidKaigi 2017で登壇してChrome Custom Tabsについて発表しました。

スライドとサンプルアプリと、そのコードです。 speakerdeck.com play.google.com github.com スピーカーから見たDroidKaigiと、それにまつわる個人的なメモです。 スピーカーから見たDroidKaigi DroidKaigiスケジュール 日程 出来事 行動 2016.10.01 CFP募…

Bottom Navigationをガイドラインぽく実装する

Bottom Navigationはサポートライブラリが提供されています。 しかし、単純に使うだけではガイドラインぽくなりません。 ガイドラインぽく実装してみました。 ガイドラインぽさ Navigation Barを含んでBottom Navigationにする 下にスクロールすると隠れる …

Link Stackをメジャーアップデートしました

リンクをちょっとだけ後で読むアプリ、Link Stackをメジャーアップデートしました。 play.google.com このアプリを作った経緯はこちらです。 sakebook.hatenablog.com メジャーアップデートの機能紹介と、なぜその機能を付けたかについて書きます。 2つの新…

2016年を振り返って

2017年も12分の1が過ぎようとしてますが、2016年を目標とともに振り返ります。 2016年の目標 本を10冊以上読む 未達。 プロダクトのアウトプットを4つ以上 未達。 個人ページ作成 できた! ブログを20回以上更新 未達。 本を10冊以上読む 3冊くらいしか読ん…

ニッチなアプリ「Screen Scanner」を作った

スマホに表示されているバーコードを読み取るアプリを作りました。画像を渡して読み取ることもできます。カメラで読み取る機能は現状つけていません。 play.google.com 動機(1年半前) 今から1年半ほど前の話です。 スマホのサイト上に表示されたQRコードを読…

AWS LambdaでKotlinのコードを動かす

Web APIを作ってみたいと思い、AWS Lambdaを触ってみました。PythonかNodeかJavaが使えるとのことだったので、自分が一番書きやすいKotlinで動かしてみるところまでやりました。 まだ詳しくわかっていない部分が多いので、動作したことのメモ書き程度。 確認…

GenymotionにGooglePlayを入れるのが簡単になってた

以前もGenymotionでGooglePlayを動かせるようにする記事を書いたのですが、それよりも簡単な方法が、公式のQAで紹介されていました。 sakebook.hatenablog.com 次のサイトから、zipファイルを落として起動しているGenymotionのEmulatorに入れるだけです。フ…

Shinjuku.aar第1回に参加した

Shinjuku.aarとは Shinjuku.aarは、新宿界隈のAndroid技術者たちが 技術ネタで気軽にワイガヤできる コミュニティです。 発表ごとにディスカッションタイムを設けており、発表中の質問やツッコミも随時ウェルカム! さらに、ディスカッションが盛り上がるよ…