麦芽を支える技術

麦芽(ばくが、英語:malt)とは、麦、特に大麦の種子を発芽させたもので、ビール、ウイスキー、水飴の原料となる。(Wikipediaより)

BitriseでSwift Package Manager(SPM)のパッケージをキャッシュする

はじめに 自分のXcodeプロジェクトではライブラリ管理を徐々にCocoaPodsからSwift Package Manager(以下 SPM)へ移行してるんですが、CocoaPodsの時にやっていたのと同じようなBitriseのキャッシュ設定をSPM用にも入れたいなと思いちょっと調べてみました。…

既存APKアプリをGoogle Playアプリ署名・Android App Bundleへ移行

はじめに 既にAPKで公開済のアプリをGoogle Play アプリ署名の利用に変更し、Android App Bundleを利用できるようにするまでのメモです。 現状うまく動いているからあとでいいじゃん、と思い続けて結構長らく放置してたんですが、2021年後半よりGoogle Play…

Kotlin Multiplatform Mobile (KMM) ことはじめ 〜Hello, World!〜

はじめに 2020/8/31にKotlin Multiplatform MobileがAlpha版へ移行したというニュースが発表されました。 blog.jetbrains.com 私はもともとKotlin Multiplatform Project構成で個人アプリの開発を試していたこともあり、今回のこの新たな発表について割と強…

React Native for WebでPWAやってみた

この記事はPWA Advent Calendar 2019の15日目の記事です。 はじめに 私は普段は主にネイティブアプリ(iOS/Android)開発をしておりまして、Webフロント周りは久しく触っていないのですが、ちょっと最近React Nativeを触る機会があり、その文脈で「React Nat…

fastlaneでビルドしたiOSアプリがBitrise Shipに反映されない問題の対処

この記事はBitrise Advent Calenderの14日目の記事です。 はじめに 普段はiOSアプリをメインとしたネイティブアプリ開発を生業としておりまして、Bitriseさんには結構長らく大変お世話になっております。(振り返ってみると2015年に使い始めたらしくもう4年.…

AndroidのversionCode, versionNameをインクリメントするGradleタスク

AndroidプロジェクトのversionCodeやversionNameは、だいたい1つずつインクリメントしていくだけの場合が多く、コマンド1発で書き換えられるようにしておけば、将来的にCIなどでこの辺の作業を自動化させる時にも楽だよね、というヤツです。 iOSプロジェクト…

Xcode11からja_JPロケールのNumberFormatter出力でnbspが入るようになった

事の発端 元々以下のように数値を通貨形式の文字列フォーマットに変換する処理のユニットテスト書いてあったんだけど、Xcode11にしてからテストが失敗するようになってしまった。 let target = 1000 XCTAssertEqual(target.yenFormattedString, "1,000円") /…

iOSシミュレータのアプリをコマンドラインからDeepLink起動する

いつも忘れるのでメモ。 iOSシミュレータ内のSafari使ってDeepLink起動もできるけど、コマンドラインの方がサクサク叩ける。 Xcode Command Line Tools設定 以降で使用する xcrun コマンドの利用のため、もしXcode Command Line ToolsにXcodeアプリが指定さ…

OK Google, iOSアプリをデプロイして

はじめに こないだGCPUGの仙台版が立ち上がりまして、同じ会社のメンバーも運営に参画していることもあって、せっかくなので盛り上げに貢献すべく、ぺちコン仙台、XDUG仙台に続き、またしても畑違いな身分でLTで話してきました。 gcpug-sendai.connpass.com …

Adobe XD・Zeplin・Xcode連携で、iOSアプリのデザイン実装フロー効率化

はじめに もう先月の話になりますが、Adobe XDのユーザーグループが開催しているAdobe XDやUI/UXに関わる勉強・交流会「仙台 Adobe XD Meeting #3(今は名前変わってAdobe XD ユーザーグループ仙台 )」に参加してきまして、LT枠でちょっとだけお話ししてき…

iOS Universal Linksの設定とFirebase Hostingでの簡単お試し方法

今更といえば今更なんですが、業務でiOSアプリのUniversal Links対応する際に、この辺りを自分なりに整理したので、その内容をメモっておきます。 iOSのDeep Link技術の整理 本題に入る前に、iOSにおけるDeep Link技術について整理しておきます。 ディープリ…

PHPカンファレンス仙台にLT登壇&ブース出展してきました #phpconsen

「ブログを書くまでがカンファレンス」と言われておりますので、熱が冷めないうちに書いておきます。 2019/1/26(土)に開催された「PHPカンファレンス仙台」にて、LT登壇とブースの出展してきました。 phpcon-sendai.net 最初に言ってしまうととても楽しか…

2019年の目標設定

あけましておめでとうございます。まぁこれを書き始めたのはまだ2018年の蒲田のドトールなので、まだ年明けてないんですが。 どうせすぐには書ききれないので、追記する頃には無事年明けのエントリになるはずです。(この後発熱し寝込んで、年末年始に全く筆…

2018年の振り返りと評価と総括

今年も残すところあとわずかということで、2018年の振り返りをしとこうと思います。 実は毎年なんとなく目標は立てていて、年末になんとなく自分の中で評価してはいたんですが、まぁ当然ながら明文化しとかないとだいたい曖昧な感じになるので今年はちゃんと…

「EVENTech」というIT勉強会・イベント検索アプリをリリースしました

このエントリはQiita「個人開発 Advent Calendar 2018」の5日目のエントリとなります。 はじめに ホントはアプリのリリースと同時にこういうエントリを書いて、それでアプリの告知とかすれば良かったわけですが、何かこうApple審査通ったらなんだかんだです…

Confluence APIを使ってConfluence上に新規ページを作成する

はじめに Confluenceとは ja.atlassian.com Atlassian社製のチームコラボレーション・ナレッジマネージメントサービス。平たく言うと社内Wiki的なやつですね。 Qiita:Team、esa.io、Kibela、Crowi、Notionあたりと競合する領域ですかね。 以下、コンフルと呼…

仙台からiOSDC Japan 2018へ参加してきました

事前ブログで宣言した通り、2018/8/31(金)と9/1(土)の2日間「iOSDC Japan 2018」に参加してきました。 asmz.hatenablog.jp 仙台の自宅からiOSDC会場までざっくり3時間。 しゅっぱつ~ #iosdc pic.twitter.com/dsxBWrCNeM— asmz (@_asmz) 2018年8月30日 …

仙台からiOSDC Japan 2018へ参加しに行きます

2018/8/30(木)〜2018/9/2(日)の4日間に渡って早稲田大学西早稲田キャンパスで開催される「iOSDC Japan 2018」に金曜と土曜の2日間だけ参加することにしました。初参加です。 といっても、特に登壇する訳でもないのになんでこんなエントリ書いてるのかと…

コマンドラインからGoogleドライブにファイルをアップする

はじめに コマンドラインからGoogleドライブにファイルをアップできたら、CIの成果物とかをとりあえずぶん投げておけて便利そうだな、と思って調べたもの。 今回使うツールはこちら。 rclone - rsync for cloud storage ちなみに、このツールの他にgdriveと…

BitriseへのiOSアプリ追加手順(外部アカウント連携なしで)

まぁ今更といえば今更だけど、ちょうどこの作業して社内共有する機会あったので、キャプチャ取って整理した。 やること Bitriseへの新規アプリ追加 通常だとアプリ追加手順内でGitHub、Bitbucket、GitLabなどのリポジトリサービスとアカウント連携することで…

Dialogflowを使ってノンプログラミングで音声アシスタントを作ろう

はじめに 最近の流行りに乗ってGoogle Home Mini買ってみたので、なんか音声アシスタントアプリ作りたいなと思って調べた内容。 ちなみにこのエントリ内容は先日こちらの勉強会でLTしてきたもの。 lets-go-study-meeting.connpass.com LT5分枠で10分超という…

React Native開発環境整備メモ

以前ちょっとアルバイト的な感じでReact Native触る機会があったものの、既存プロジェクトの改修という形で入ったこともあって初期の環境構築作業などちゃんとまとめておらず、いざ他の人にも教えよう!という時に困ってしまったので、だいぶ今更ながら基本…

tvOSアプリのIn-App Purchaseで購入・リストア要求時にAppStore側からの応答が受け取れない問題

実際のところこの問題が発生するのは動作環境にも寄る気もするけど、tvOSアプリの実機デバッグで2台のAppleTV端末で同事象が発生したので、tvOSだと起こりやすいとかあるのかもしれない。 概要 In-App Purchaseで購入やリストアをする場合、ざっくり書くと以…

iPhoneXから表示されるHome Indicatorの表示/非表示をViewController毎に設定したい

ちょいとこのHome Indicatorを隠したい要件があって、まだ世の中にHome Indicatorの記事出回ってないようなのでメモ。 Home Indicatorとは iPhoneXの画面下部に表示されるバー。この辺のiPhoneX画像見てもらうとありますよねー。 https://developer.apple.co…

fastlane matchを使ったiOS証明書、Provisioning Profileの導入管理

前の会社の技術ブログに書いたやつだけど、技術ブログ閉鎖されたっぽいんで、前もってバックアップしといたやつを転記。 iOSアプリ開発に必要な証明書とProvisioning Profile さて、iOSアプリ開発の鬼門とも言われるCode Signing&Provisioning。最近はXcode…

AppliveryのDistribution sitesで開発中のiOS/Androidアプリをお手軽にテスター配布

前の会社の技術ブログに書いたやつだけど、技術ブログ閉鎖されたっぽいんで、前もってバックアップしといたやつを転記。 アプリ開発でこんなことありませんか? iOS/Androidアプリの開発をしていて、こういうことってありませんか?ありますよね?今は無くて…

試行錯誤してたどり着いた現在のiOSアプリ自動デプロイ環境(Bitrise、fastlane、Crashlytics、たまにbuddybuild)

前の会社の技術ブログに書いたやつだけど、技術ブログ閉鎖されたっぽいんで、前もってバックアップしといたやつを転記。 仙台iOS開発者勉強会へ参加 実は私、東北出身ということもあり、新卒から十数年ほど過ごした首都圏を離れて仙台にJターンしてきたわけ…

BartyCrouchでiOSアプリの多言語化(Localization)用stringsファイルを自動更新

結構前から便利そうだと思って使ってるんだけど、案外紹介されてる記事が少ないのでとりあえず書く。 BartyCrouchとは これ。 github.com iOSアプリを多言語対応する際に必要になる以下のファイルを、CLIから更新してくれるツールです。

GoogleAppsのGmail設定「デフォルトの転送」を用いたメール転送

Gmailでメール転送というと、Gmail画面より「設定」-「メール転送と POP/IMAP」で転送先アドレスを追加することで行うのが一般的ですが、この方法だと転送元・転送先双方の実アカウントが必要だったり、転送先アドレスの方では転送を許可するかどうかを確認…

Android NDKでOpenSL ESを利用する

AndroidアプリでOpenSL ESを利用してMP3ファイルの再生を行う必要があったのでいろいろ調べてみたものの、日本語の解説サイトがほとんど見つからないのと、いくら「OpenSL ES」でググっても「OpenGL」か「OpenSSL」ばかりヒットしてしまうので、昔調べた時に…