麦芽を支える技術

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

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

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

iOSプロジェクトだとfastlaneの increment_build_numberincrement_version_number のActionで同様のことができますが、手元のAndroidプロジェクトだとfastlaneは使わずGradleでほとんどのビルドタスクを実行しているので、自前のGradleタスクとして用意しました。

続きを読む

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

事の発端

元々以下のように数値を通貨形式の文字列フォーマットに変換する処理のユニットテスト書いてあったんだけど、Xcode11にしてからテストが失敗するようになってしまった。

let target = 1000
XCTAssertEqual(target.yenFormattedString, "1,000円")  // "1,000 円" is not equal "1,000円"

ちなみに、ここでやっている .yenFormattedString は以下のようなIntのExtension。

extension Int {
    var yenFormattedString: String {
        let formatter = NumberFormatter()
        formatter.locale = Locale(identifier: "ja_JP")
        formatter.numberStyle = .currencyPlural
        return numberFormatter.string(from: self as NSNumber) ?? ""
    }
}

"1,000 円" is not equal "1,000円" と言われているので、の前に半角スペース入るように変わったのかな?と思い、テストを修正してみたら以下のようになった。

let target = 1000
XCTAssertEqual(target.yenFormattedString, "1,000 円")  // "1,000 円" is not equal "1,000 円"

"1,000 円" is not equal "1,000 円" ??

続きを読む

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

いつも忘れるのでメモ。

iOSシミュレータ内のSafari使ってDeepLink起動もできるけど、コマンドラインの方がサクサク叩ける。

Xcode Command Line Tools設定

以降で使用する xcrun コマンドの利用のため、もしXcode Command Line ToolsにXcodeアプリが指定されていなければ設定。

[設定場所]

  • Xcode
    • Preferences
      • Locations

f:id:asmz0:20190718113743p:plain:w600

続きを読む

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

はじめに

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

gcpug-sendai.connpass.com

直近の開発案件で、サーバサイドは全面的にGCPを使っているのですが、自分はiOS側の開発がメインで直接的には使用してない(若干Firebaseで近いところに触るくらい)ので、今回は完全に趣味で作ってみたネタ系です。

続きを読む

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

はじめに

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

xd-sendai.connpass.com

Adobe XDはアプリの簡単なワイヤーフレーム的なやつとその画面遷移を作ったくらいしか経験なくて、どちらかと言うと社内のデザイナーさんがXDでゴリゴリ作ったアプリUIデザインを共有してもらい、自分はXcodeで本実装と言うのをやってました。

なので、XDの便利な使い方とかはそんなに話せないけど、そこからアプリに本実装するまでの流れとかをiOSエンジニア観点で話すことはできるかな、と思い今回LTに手を上げてみました。

続きを読む

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

今更といえば今更なんですが、業務でiOSアプリのUniversal Links対応する際に、この辺りを自分なりに整理したので、その内容をメモっておきます。

iOSのDeep Link技術の整理

本題に入る前に、iOSにおけるDeep Link技術について整理しておきます。

ディープリンク(Deep Link, Deep Linking)とは

Mobile deep linking - Wikipedia日本語ページでは、なんかモバイルではなくWeb全般を捉えたページしか無い)

モバイルアプリ文脈では「URLを用いてアプリ内の特定の場所(画面)にリンクすること」をディープリンクと呼びます。

続きを読む

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

「ブログを書くまでがカンファレンス」と言われておりますので、熱が冷めないうちに書いておきます。

2019/1/26(土)に開催された「PHPカンファレンス仙台」にて、LT登壇とブースの出展してきました。

phpcon-sendai.net

最初に言ってしまうととても楽しかったわけですが、今回は一般参加者ではなく初めて登壇&ブース出展という役割で参加したので、その辺の観点も含めてまとめてみます。

続きを読む