リアキテク・ラボ Tech Blog

OpenH264 に対応した FFmpeg をビルド

はじめに iOS アプリに動画を組み込む場合、コーデック第一の選択肢として、H.264 が挙げられ、それと同時に H.264 ライセンスと向き合うことを余儀なくされるわけですが、そもそも、アプリ組み込み以前に、H.264 動画を用意すること(H.264 エンコード…

Google Apps Script で領収書管理を楽にする

はじめに 確定申告のため、メールに添付された領収書をちまちまと手作業で整理したんですが、なかなかに面倒だったので、Google Apps Script で自動化してみました。 自動化内容 概要 Gmail で受信したメール(検索クエリで抽出)に添付されている pdf ファイルを…

Expo でダウンロード進捗処理

はじめに Kotlin で Android 開発もやっているからこそ、Expo(React Native)ってホント便利だなぁと実感するわけですが、一方で、予想だにしない変な所でハマってしまうことも確かにあるわけです。今回はファイルのダウンロード進捗処理にハマりました。 前提 や…

Gatsby に RSS フィードを追加

はじめに Gatsby で構築したブログに RSS フィードを追加する場合、公式ドキュメントの通りにやればほぼ問題ないんですが、ちょっとだけ日本特有の追加対応をしたので、そのメモです。 対応内容 前提 pubDate には yyyy-mm-dd 形式の edge.node…

Android(Kotlin) Fragment にコールバックをセットする無難な方法

はじめに 画面回転でタップが効かなくなるバグに遭遇し、Fragment にコールバックをセットする方法を改めて考えさせられました。最初に結論を言ってしまうと、多少面倒でも良く見かける下記方式を実直に実装するのが無難で良いかと考えています。 参照が循環しないようにリスナーインター…

Gatsby と Zendesk でお問い合わせ機能

はじめに Gatsby で構築した Web サイトにお問い合わせ機能を実装したのですが、色々調べて試行錯誤したので備忘録です。 前提 Zendesk の採用について お問い合わせ機能は大雑把に、下記から構成されると考えられます。 お問い合わせフォーム UI UI…

Android(Kotlin)で ZonedDateTime を使う

はじめに 日時処理をまあまあ記述しなければいけない場合、java.util.Calendar しか使えないのは(使いづらくて)辛いなーと思います。java.time.ZonedDateTime で代替できそうなので試してみます。 実装内容 概要 デフォルトでは使えない java…

Android(Kotlin)LiveData でデータバインディング

はじめに Android 開発経験を一定積むと、findViewById メソッドを使って要素を取得した上で、(監視付きで)表示用値セット、イベントハンドリング等、処理を記述していくことに疲れてくる訳ですが、そんな時に嬉しいデータバインディングという仕組みがあります。 ただ…

Android(Kotlin)日付・時間選択ダイアログ

はじめに ユーザーに日付、時間を選択させたい場合、DatePickerDialog と TimePickerDialog を利用するのが良いと思います。ただ、ドキュメントにもそれぞれの使い方が記載されてはいるんですが、実際に使えるレベルまで実装するとプラスアルファで色々あったので…

Android(Kotlin)Navigation 通知タップで遷移

はじめに 過去の記事で 、Navigation コンポーネントでアプリバーを実装しました。今回は「通知タップで目的のデスティネーションへ遷移」を実装してみます。 (後述する差分は前述記事からの差分になります)。 実装内容 概要 通知タップアクションと遷移を紐付けるには、ドキュメ…

Android(Kotlin)AlarmManager の壁

はじめに Android で時間指定処理(一定時間経過後のローカル通知等)をやろうと思ったらまず立ち塞がるのが AlarmManager です。API Level 毎の差異が複数あって、取っ付きづらいので、ざっくり調査内容をまとめておきます。 調査 前提 本記事においては、デバイ…

Android(Kotlin)Navigation アプリバー対応

はじめに 前回 、Navigation コンポーネントで画面遷移を実装しました。今回はアプリバーも対応してみます (後述する差分は前回の記事からの差分になります)。 実装内容 概要 対応内容は下記のの通りです。 アプリバー表示 アプリバー内に該当画面名を表示 アプリバー内に戻…

Android(Kotlin)Navigation はじめの一歩

はじめに アプリバーを実装したくて色々調べていたら、 Navigation コンポーネントの存在を知りました。 ドキュメントを見る限りは便利そうだったので、導入検討のため、最低限の画面遷移処理を実装してみました。 実装内容 Gradle Gradle プラグインを追加するので…

No Activity な Android(Kotlin)プロジェクト

はじめに Android プロジェクトを作成する際には、自動生成されたファイルをたいして理解せずに使っていたのですが、ちゃんと理解しようと思い、最小構成であろう Project Template No Activity を深掘りします。 調査内容 プロジェクト作成条件 Andro…

Expo(TypeScript)セットアップ

はじめに Expo を TypeScript で使うことは何度かやっているんですが、手順として整理できていなかったので、整理してみました。Expo プロジェクトを作成し、ESLint を導入します。 セットアップ手順 事前準備 nodenv を使って最新の Node.js…

C# struct 引数

はじめに C# 言語仕様としても、Unity(ゲームエンジンの方)等の C# を用いた開発環境においても、struct の存在感は増しています。が、class に慣れてしまっていると、癖があって、変なパフォーマンスボトルネックを知らずにつくってしまいがちなのも事実です…

Gatsby ブログにタグ導入

はじめに タグ機能の追加方法は公式ドキュメントに全て記載されています。 以上。 ・・・なんですが、備忘録含めて gatsby-starter-blog スターターに対して適用した場合の実差分を記載しておきます。 実差分 タグ情報を GraphQL で取得し…

Gatsby でブログ

セットアップ 公式ドキュメントの手順をざっと確認すると、スターターと呼ばれる雛形を利用しているようだったので、https://www.gatsbyjs.com/starters/ を見て、スターが多い gatsby-starter-blog を使ってみることにしました。Node…