怠慢プログラマーの備忘録

怠慢でナマケモノなプログラマーの備忘録です。

【Golang x Stripe】STPEphemeralKeyのDecode問題にハマった話(備忘録)->解決済

【2020/07/28 更新】RowJSONについて

key.RowJSONの型が[]byteとなっています。

どうやら[]byteJSONにされた時点Base64エンコードされた文字列になっているようなので返却値の型を[]byteにしているとBase64の文字列が返却されていました。

続きを読む

【Android】Kotlin Coroutines

Coroutinesとは

プログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。 サブルーチンと異なり、状態管理を意識せずに行えるため、協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる。 by Wikidedia

ちなみにコルーチンという言葉が最初に出てきたのがコンウェイの法則で有名なあのメルヴィンさんの論文らしい...

続きを読む

転職しました🎉

前置き

※本記事はあくまで個人的な備忘録的な意味合いが強く、何かしらの宣伝目的や意志の主張・強調するものではありません。またもちろんのこと特定の人物や組織を揶揄する意味も持ちません、あくまでも個人的なその当時の気持ちや考えていたことを書き記したものです。
よってここに書かれていることは全て個人的な見解であり、所属する・所属していた組織等の公式な見解ではございません。

続きを読む

【iOS】prev/nextのviewを表示させるHorizontalScroll(FlowLayout)[備忘録]

HorizontalScroll

上記画像のような両端(prev/next)の要素(view)が見えてる状態で、かつAndroidのsnapHelperが効いている(スクロールする際に1番表示領域の大きい要素を中央へスクロールされる)ようなHorizontalScrollの実装方法です。

本来両端の要素を表示しない場合は padding enabledを使用すれば実現できますが、両端のprev/nextのviewを表示しながらの場合はpadding enabledでは実現できません。

続きを読む

【Android】BottomNavigationの選択を自前で管理する

material.io

developer.android.com

AndroidStudioからプロジェクトを作成するときに"Bottom Navigation Activity"を選択すると、上記のBottomNavigationが作成された状態でプロジェクトが作成されます。

続きを読む

個人事業1年経過&本業退職します(無職予備軍になります)

2020年4月1日でめでたく個人事業主として開業してから1年が経過しました。

また、2017年より勤めていた本業の新潟の株式会社クーネルワークと言う会社を5月末で退職することになりました。

続きを読む

【Android】RecyclerViewでHorizontalScrollを実現する[備忘録]

掲題の通りRecyclerViewでHorizontalScrollを実現します。

RecyclerViewHolder.kt

import android.view.View
import androidx.recyclerview.widget.RecyclerView

class RecyclerViewHolder(view: View): RecyclerView.ViewHolder(view) {
    // layoutファイルのUIコンポーネント
}
続きを読む

Firestoreの特定のCollectionをCloudFunctionsで監視してPushNotificationを送信する[備忘録]

チャットアプリなどでFirestoreの特定のCollectionが変更された際に対象ユーザーにPushNotificationを送信するといったシーンの実装方法の備忘録です。

Firebase

CloudMessagingがPushNotificationを送信する際に必要になるfcmTokenはFirestoreに保存しておきます。 アプリ側でfcmTokenを取得する際のコードは下記になります。

続きを読む

【Swift】FirestoreのSnapshotListenerをObservableにした場合のListenerのDetach

firebase.google.com

上記の公式ドキュメントを参考にクエリによる条件一致に該当するスナップショットのリスナーをObservableにした場合、以下のような実装になります。

続きを読む

新潟モバイルアプリカンファレンスの裏側の人の裏側

こんにちは。ABEChanです。あ、これから先私の呼称はABEChan/アベチャンでお願いします。

違う呼称で呼んだ方にはもしかしたら、私のことをよく知ってもらえてないのかな?と言う理由で焼肉をごちそうしてもらうかもです。←冗談です。

ついこの間新潟でモバイルアプリに関するカンファレンス・イベントを開催しました。

続きを読む

【Python】AWSLambda上でSelenium+ChromeDriver+headless-chromeを使ってクローリングする

yutaabe200.hatenablog.com

この記事の通り、Golang+Agouti+ChromeDriver+headless-chromeを使ってAWSLambda上で動かすことに失敗してしまったので、諦めてPythonを使用することにしました。

なお、こちらの方法はGolangで行う際より参考記事が豊富ですが、私自身Python自体も未経験でしたので、Pythonの使用手順から備忘録を兼ねて記載します。

続きを読む