ここ最近は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を使ってアプリを配信する仕組みを触る機会があったので手順をまとめておきます。 Visual Studio App Centerを使ったアプリ配信の仕組みについては以前まとめたこち…
今年もやる。去年のはこちら。 takamii.hatenablog.com 2020年にできたこと iOS、Androidアプリ開発完全に理解した 仕事でiOS、Androoid、Flutter、React Native、React.js等々のクライアントアプリをメインで見るようになったので、いわゆるネイティブアプ…
社会人になってから実はコツコツ家計簿をつけていて、それに加えて一昨年からマネーフォワードMEを使い始めている。 takamii.hatenablog.com 最近はキャッシュレス還元ブームが浸透して、自分も支払いはQRコードやクレカなどの電子決済メインになってきてい…
2020年にお金を払ったサービスのまとめの今年分をまとめました。 2019年版はこちら。 takamii.hatenablog.com 新規 Zoom 2200円 / 月 仕事で必要になったので課金し始めて、プライベートでも使うようになったのでそのまま課金している。年間契約にしようか悩…
ipaファイルをApp Store Connectへアップロードする場合、Xcode上でAcrhive後にそのままアップロードする方法と、macOSアプリとして配布されているTransporter というアップローダーツールを使う方法があります。 TransporterAppleDeveloper ToolsFreeapps.a…
本記事は Flutter #1 Advent Calendar 2020 の12/13の記事です。 qiita.com Flutterでアプリ開発を行う時、 pub.dev で公開されているプラグインを使うことで特定の実装やネイティブ実装を代用することができます。 このときそのまま公開されているプラグイ…
本記事は主に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…
10/17、18に行われたDevFest Tokyo 2020にてLT発表を行いました。 tokyo.gdgjapan.org gdg-tokyo.connpass.com 発表内容はここ1年間主に取り組んでいたFlutterの仕事で試行錯誤したCI/CDパイプラインについてを5分にまとめました。 speakerdeck.com 内容の詳…
先日行われたISUCON10に元同僚の id:int128 先生と id:translucens 先生と gosoudan2というチームで参加してきました。 isucon.net 事前準備 実はISUCON9に同じメンバーでgosoudanというチームで参加していて、このときは始めてだったので勝手が分からなかっ…
先日こんな記事が話題になっていた。 android-developers.googleblog.com ノンプログラマ向けのAndroidアプリ開発の学習コンテンツらしい。 早速やってみたら動画とcodelabs形式で起動してクリックイベントを拾って画面を切り替えるアプリが出来上がった。動…
iOSアプリのPush通知を実現するには、APNs(Apple Push Notification Service)と連携する必要があります。この連携方式について調べてみたので備忘録としてまとめておきます。 APNsとの連携方式 APNsとの連携はPush通知を受け取るアプリケーションとの連携…
最近はFlutterでiOS / Androidアプリ開発をしているのですが、ある程度の頻度でプラットフォームやライブラリのアップデートに追従していかないとあっという間に取り残されてしまう空気を感じています。 ネイティブのOSでいうとちょうど先日Android 11のBeta…
apkファイルとipaファイルのバージョン情報をコマンドラインで確認する方法を備忘録として残しておきます。 apkとipaのバージョン情報について apkファイル及びipaファイルのバージョン情報は、ストア申請のときのバージョニング情報として利用されるもので…
はじめに Flutterの開発の中でSwagger/OpenAPIのYamlからコードを自動生成して使うことがあったのでまとめておきます。 Swagger/OpenAPIとは OpenAPIはREST APIの仕様を記述するフォーマットで、yaml形式で仕様を定義することができます。 2.0系と3.0系があ…
はじめに ネイティブアプリの内部テストを円滑にすすめるために、Visual Studio App Centerを使ってアプリを配信する仕組みを触る機会があったので手順をまとめておきます。 Visual Studio App Centerとは Microsoftが提供しているネイティ・デスクトップア…
はじめに 前回はCIパイプラインについて前半・後半に分けて説明を行いました。 takamii.hatenablog.com takamii.hatenablog.com 今回はCDパイプラインについて説明します。 CDとは継続的デリバリー(Continuouse Delivery)の略で、アプリケーションを継続的…
はじめに 前半ではFlutterのCIパイプラインで実行する内容について説明しました。 takamii.hatenablog.com 後半では実際の開発におけるパイプラインの使い分けについて説明します。 CIパイプラインが開発のボトルネックに!? CIパイプラインは重厚にすれば…
はじめに アプリケーションを継続的に安全に機能追加していくプラクティスとして継続的インテグレーション(CI:Continuous Integration)があります。 コードの追加、すなわちPushやPull Request / Merge Request契機でCIを実行し、その変更が既存機能を破…
以前flutterのバージョン切り替えをCI環境で動的にやる記事の中で、yamlの指定したキーを取り出すのに yqコマンドを使っていたのですが、このyqの利用に関してハマったことをメモとして残しておきます。 takamii.hatenablog.com yqとは yqとはjqのyaml版でya…
アプリケーション開発において実装したい機能を実現するために、世の中に公開されているライブラリやプラグインを使ってフルスクラッチでの実装の手間を省くことがあります。その一方で、プラグインを理由にプラットフォームのアップデートを断念したり塩漬…
自分たちが関わっているサービスに関する世の中からのフィードバックを確認することは、そのアプリのマーケットでの立ち位置の把握や開発チームのモチベーションを維持する上で重要です。 iOSであればAppStore、AndroidであればGoogle Play上でユーザから5段…
障害や問題が発生したときに行う振り返りのことをポストモーテムと呼び、SRE本の15章でも紹介されています。 SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者:出版社/メーカー: オライリージャパン発売日: 2…
ふとTLに流れてきたので、やってみた。 増税があったりドルが混ざってたり月額年額が混ざってたりと費用はどんぶり勘定です。 新規 マネーフォワードME 5300円 / 年 今までスプレッドシート運用だったけどクレカ明細やキャッシュレス、PASMOとかの中まで把握…
今年もざっくり振り返ろうと思う。2018年の記事はこちら。 takamii.hatenablog.com 2019年にできたこと AWS SAを取る 2月に取った。 takamii.hatenablog.com GoをJava/PHPと同じくらい書けるようになる シェルスクリプトではやりきれないやつをGoでサクっと…
この記事はFlutter Advent Calendar 2019 (#2)の記事です。 ※12/21 8時時点で18日分に空きがあったので埋めさせていただきました(参考) はじめに GitLab CIを使ってFlutterのCI/CDをやっているのですが、CI環境において複数のFlutterのバージョンを管理す…
FlutterでID/Pass入力画面を作るときに設定するのパラメータをちょっと調べたのてまとめてみます。(※入力のバリデーションやオートフォーカス等のアクションは含みません) よくあるID/Pass入力画面の要件 よくあるID/Passの入力画面の要件といえばこんな感…
リリース頻度のデータを分析するために、GitLabのtag名とtagを作成した時のタイムスタンプの一覧が欲しくなったのでGitLab API経由で取得するシェルを書きました。 #!/bin/sh BASE_URL="xxxx" API_TOKEN="xxxx" PROJECT_ID="xxxxx" # 全tag一覧を取得するた…