kobakei's blog

プログラミングの話や技術系イベントの話をゆるく書くブログです

エンジニアリングマネージャーという仕事について

今自分が働いている会社ではエンジニアリングマネージャーという肩書で仕事をしています。「ああ、エンジニアのマネジメントをする人ね」ってことなんですが、具体的にどういうことを考えてどういう仕事をやってるかを実際にやってみて分かったこともあるのでまとめておこうと思います。

一応注意としては、「自分はこう考えて仕事してるよ」っていうだけの話で、会社や組織によっては全然違うことを考えたり実行してる人も一杯いると思います。自分の仕事はピープルマネジメントがメインです。

続きを読む

#iOSDC に採択されました

表題の通りです。

去年の年末に社内のiOSリソース不足が理由で、AndroidエンジニアからiOSエンジニアに転向しましたiOSやるからにはでかいカンファレンスで喋れるくらいのレベルになるぞ」という目標を密かに掲げてたんですが、これで一応達成見込みが立ちました。

続きを読む

Kingfisherのリクエストヘッダーを書き換える

KingfisherのCheat Sheetより。AnyModifierを使う。

let modifier = AnyModifier { request in
    var r = request
    r.setValue("", forHTTPHeaderField: "Access-Token")
    return r
}       
imageView.kf.setImage(with: url, placeholder: nil, options: [.requestModifier(modifier)])

毎回オプションにAnyModifierを渡すのがめんどくさい場合は、KingfisherManager経由でセットすればよい。

KingfisherManager.shared.defaultOptions.append(.requestModifier(modifier))

BottomSheetDialogFragmentの使い方

あまりまとまってないようなのでメモ。

昔は setupDialog をオーバーライドしていたが、サポートライブラリが @RestrictTo(LIBRARY_GROUP) を付けるようになったので警告が出る。代わりに、 onCreateDialog をオーバーライドして中でビューを作成するのがよさそう。

class MyBottomSheet : BottomSheetDialogFragment() {

    companion object {
        // Fragmentと同様、インスタンス生成はstaticメソッドで行う
        fun newInstance(): MyBottomSheet = MyBottomSheet()
    }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val dialog = super.onCreateDialog(savedInstanceState)

        // dialogに、自分で作ったビューをセットする
        val inflater = LayoutInflater.from(context)
        val binding: MyBottomSheetBinding = MyBottomSheetBinding.inflate(inflater)
        dialog.setContentView(binding.root)

        return dialog
    }
}

初めての確定申告(eTax)に滅茶苦茶苦労した

2017年から個人事業主で開業したため、今年初めて確定申告しました。滅茶苦茶苦労したので、来年の自分用にメモ。

注意: 正確な確定申告の手順などについては、税務署や税理士にご確認ください。この記事の内容及びリンク先からいかなる損失や損害などの被害が発生したとしても、当方では責任を負いかねます。

続きを読む

#DroidKaigi 2018で「開発者が知っておきたい通知の歴史」という内容で講演しました

DroidKaigi 2018

今年はセッションが採択されたので、スピーカーとして参加しました。去年までは普通に参加者としてだったので、スピーカーとして参加するのは今年が初です。

続きを読む