つばくろぐ @takamii228

知は力なり

Jenkinsのビルドエージェントとしてmac miniを設定する手順をまとめた

ここ最近はGitLab CIにどっぷりだったのだけど、久しぶりにJenkinsでiOSのCI/CDを組む必要が出てきたのでmac miniをビルドエージェントに登録する手順をQIita記事にまとめました。 qiita.com 基本的な流れはGitLab CIと同じですね。JNLPという仕組みを使って…

「私の情報の集め方、知識の学び方」を書き直した

以前自分の情報収集のやり方について以下のブログにまとめていました。 takamii.hatenablog.com ここではGitPitchというサービスを使ってgithubのリポジトリにおいたmarkdownからスライドを生成していたのですが、このGitPitchが2021/3/1にサービスが終了す…

Firebase App Distributionを使って内部向けに継続的にネイティブアプリを配信する

はじめに ネイティブアプリの内部テストを円滑にすすめるために、Firebase App Distributionを使ってアプリを配信する仕組みを触る機会があったので手順をまとめておきます。 Visual Studio App Centerを使ったアプリ配信の仕組みについては以前まとめたこち…

2020年の振り返り的な何か

今年もやる。去年のはこちら。 takamii.hatenablog.com 2020年にできたこと iOS、Androidアプリ開発完全に理解した 仕事でiOS、Androoid、Flutter、React Native、React.js等々のクライアントアプリをメインで見るようになったので、いわゆるネイティブアプ…

2020年のキャッシュレス業を振り返る

社会人になってから実はコツコツ家計簿をつけていて、それに加えて一昨年からマネーフォワードMEを使い始めている。 takamii.hatenablog.com 最近はキャッシュレス還元ブームが浸透して、自分も支払いはQRコードやクレカなどの電子決済メインになってきてい…

2020年にお金を払ったサービス一覧

2020年にお金を払ったサービスのまとめの今年分をまとめました。 2019年版はこちら。 takamii.hatenablog.com 新規 Zoom 2200円 / 月 仕事で必要になったので課金し始めて、プライベートでも使うようになったのでそのまま課金している。年間契約にしようか悩…

WindowsからApp Store Connectにipaファイルをアップロードする

ipaファイルをApp Store Connectへアップロードする場合、Xcode上でAcrhive後にそのままアップロードする方法と、macOSアプリとして配布されているTransporter というアップローダーツールを使う方法があります。 TransporterAppleDeveloper ToolsFreeapps.a…

FlutterにおけるPluginとの付き合い方 #flutter

本記事は Flutter #1 Advent Calendar 2020 の12/13の記事です。 qiita.com Flutterでアプリ開発を行う時、 pub.dev で公開されているプラグインを使うことで特定の実装やネイティブ実装を代用することができます。 このときそのまま公開されているプラグイ…

App Store Connectアップロード時のipaファイルのvalidateをcliで実行する #iOS #flutter

本記事は主にFlutterの話題ですが、iOS向けの内容でFlutterを使っていなくても参考になると考えたため iOS #2 Advent Calendar 2020 として投稿しようと思います。 App Store Connetへのアップロード時のipaファイルのValidate XcodeでApp Storeの配布資材を…

形容詞の表現には具体性を持たせようという話

先日こんなツイートをした。 「〇〇にすれば安い」というフレーズに対してこういうコストの考え方が広まることはいいことだと思った。https://t.co/pqhO0A4eUK— takamii228 (@takamii228) 2020年11月26日 そもそも安いって形容詞なので(ry— takamii228 (@tak…

DevFest Tokyo 2020でFlutterのCI/CDについてLT発表した #DevFestJa #flutter

10/17、18に行われたDevFest Tokyo 2020にてLT発表を行いました。 tokyo.gdgjapan.org gdg-tokyo.connpass.com 発表内容はここ1年間主に取り組んでいたFlutterの仕事で試行錯誤したCI/CDパイプラインについてを5分にまとめました。 speakerdeck.com 内容の詳…

ISUCON10に参加した #isucon

先日行われたISUCON10に元同僚の id:int128 先生と id:translucens 先生と gosoudan2というチームで参加してきました。 isucon.net 事前準備 実はISUCON9に同じメンバーでgosoudanというチームで参加していて、このときは始めてだったので勝手が分からなかっ…

Androidを学びたい人はcodelabsを一通りやるといい

先日こんな記事が話題になっていた。 android-developers.googleblog.com ノンプログラマ向けのAndroidアプリ開発の学習コンテンツらしい。 早速やってみたら動画とcodelabs形式で起動してクリックイベントを拾って画面を切り替えるアプリが出来上がった。動…

iOSのPush通知でAPNsとの連携を証明書と認証キーでそれぞれやってみた

iOSアプリのPush通知を実現するには、APNs(Apple Push Notification Service)と連携する必要があります。この連携方式について調べてみたので備忘録としてまとめておきます。 APNsとの連携方式 APNsとの連携はPush通知を受け取るアプリケーションとの連携…

アプリケーションが依存するFWやライブラリからアップデート戦略を考える

最近はFlutterでiOS / Androidアプリ開発をしているのですが、ある程度の頻度でプラットフォームやライブラリのアップデートに追従していかないとあっという間に取り残されてしまう空気を感じています。 ネイティブのOSでいうとちょうど先日Android 11のBeta…

APKファイルとIPAファイルのバージョン情報をコマンドラインから確認する

apkファイルとipaファイルのバージョン情報をコマンドラインで確認する方法を備忘録として残しておきます。 apkとipaのバージョン情報について apkファイル及びipaファイルのバージョン情報は、ストア申請のときのバージョニング情報として利用されるもので…

Flutterで使うAPI関連のDartコードをSwagger/OpenAPIで自動生成する

はじめに Flutterの開発の中でSwagger/OpenAPIのYamlからコードを自動生成して使うことがあったのでまとめておきます。 Swagger/OpenAPIとは OpenAPIはREST APIの仕様を記述するフォーマットで、yaml形式で仕様を定義することができます。 2.0系と3.0系があ…

Visual Studio App Centerを使って内部向けに継続的にネイティブアプリを配信する

はじめに ネイティブアプリの内部テストを円滑にすすめるために、Visual Studio App Centerを使ってアプリを配信する仕組みを触る機会があったので手順をまとめておきます。 Visual Studio App Centerとは Microsoftが提供しているネイティ・デスクトップア…

Flutterを使ったAndroid・iOSアプリ開発のCDパイプラインを構築する #flutter

はじめに 前回はCIパイプラインについて前半・後半に分けて説明を行いました。 takamii.hatenablog.com takamii.hatenablog.com 今回はCDパイプラインについて説明します。 CDとは継続的デリバリー(Continuouse Delivery)の略で、アプリケーションを継続的…

Flutterを使ったAndoird・iOSアプリ開発のCIパイプラインを構築する(後半) #flutter

はじめに 前半ではFlutterのCIパイプラインで実行する内容について説明しました。 takamii.hatenablog.com 後半では実際の開発におけるパイプラインの使い分けについて説明します。 CIパイプラインが開発のボトルネックに!? CIパイプラインは重厚にすれば…

Flutterを使ったAndroid・iOSアプリ開発のCIパイプラインを構築する(前半) #flutter

はじめに アプリケーションを継続的に安全に機能追加していくプラクティスとして継続的インテグレーション(CI:Continuous Integration)があります。 コードの追加、すなわちPushやPull Request / Merge Request契機でCIを実行し、その変更が既存機能を破…

jqのyaml版コマンド yq は2種類ある

以前flutterのバージョン切り替えをCI環境で動的にやる記事の中で、yamlの指定したキーを取り出すのに yqコマンドを使っていたのですが、このyqの利用に関してハマったことをメモとして残しておきます。 takamii.hatenablog.com yqとは yqとはjqのyaml版でya…

ライブラリやプラグインを使うときに気にしていること

アプリケーション開発において実装したい機能を実現するために、世の中に公開されているライブラリやプラグインを使ってフルスクラッチでの実装の手間を省くことがあります。その一方で、プラグインを理由にプラットフォームのアップデートを断念したり塩漬…

App StoreとGoogle Playの評価を日時で通知する

自分たちが関わっているサービスに関する世の中からのフィードバックを確認することは、そのアプリのマーケットでの立ち位置の把握や開発チームのモチベーションを維持する上で重要です。 iOSであればAppStore、AndroidであればGoogle Play上でユーザから5段…

ポストモーテムを書いて障害対応による修正・改善のWhyを残す

障害や問題が発生したときに行う振り返りのことをポストモーテムと呼び、SRE本の15章でも紹介されています。 SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者:出版社/メーカー: オライリージャパン発売日: 2…

2019年にお金を払ったサービス

ふとTLに流れてきたので、やってみた。 増税があったりドルが混ざってたり月額年額が混ざってたりと費用はどんぶり勘定です。 新規 マネーフォワードME 5300円 / 年 今までスプレッドシート運用だったけどクレカ明細やキャッシュレス、PASMOとかの中まで把握…

2019年の振り返り的な何か

今年もざっくり振り返ろうと思う。2018年の記事はこちら。 takamii.hatenablog.com 2019年にできたこと AWS SAを取る 2月に取った。 takamii.hatenablog.com GoをJava/PHPと同じくらい書けるようになる シェルスクリプトではやりきれないやつをGoでサクっと…

flutterのバージョンをGitLab CI Runner上で動的に切り替える

この記事はFlutter Advent Calendar 2019 (#2)の記事です。 ※12/21 8時時点で18日分に空きがあったので埋めさせていただきました(参考) はじめに GitLab CIを使ってFlutterのCI/CDをやっているのですが、CI環境において複数のFlutterのバージョンを管理す…

FlutterでID/Password入力画面を作ってみる

FlutterでID/Pass入力画面を作るときに設定するのパラメータをちょっと調べたのてまとめてみます。(※入力のバリデーションやオートフォーカス等のアクションは含みません) よくあるID/Pass入力画面の要件 よくあるID/Passの入力画面の要件といえばこんな感…

GitLab APIを使ってtag名とtagのタイムスタンプをcsv形式で出力する

リリース頻度のデータを分析するために、GitLabのtag名とtagを作成した時のタイムスタンプの一覧が欲しくなったのでGitLab API経由で取得するシェルを書きました。 #!/bin/sh BASE_URL="xxxx" API_TOKEN="xxxx" PROJECT_ID="xxxxx" # 全tag一覧を取得するた…