2017-01-01から1年間の記事一覧
qiita.com 個人開発アドベントカレンダー9日目です! (2週間遅れです... ) 一年前に開発してた Web サービスで、このような構成の開発をしていました。 個人開発はとにかく時間が足りないので、既存のサービスを使える場合はそのサービスを使って開発を行いま…
npm ライブラリを install して tsc したらこんなエラーが大量に出た。 node_modules/@google-cloud/firestore/types/firestore.d.ts(28,15): error TS2300: Duplicate identifier 'DocumentData'. node_modules/@google-cloud/firestore/types/firestore.d.…
1年半前は 業務 とか 趣味 で TypeScript を使ってテストも書いてたんだけど、最近は iOS ばかりで忘れてしまっていた。 けどまた仕事で同じような環境を作ったので、テストを書くときにどういう Framework があって役割は何かをメモっておく。 テストフレー…
PlantUML シンプルなテキストファイルで UML を作ることのできる、オープンソースのツール 今までは astah とかでユースケース図とかシーケンス図書いてたんだけど、 GUI で書くの辛いなと思って PlantUML というのを使ってみた。 コードで UML を書ける、今…
testnight.connpass.com iOS Test Night #6 にブログ枠として参加したので、そのレポートです。 ㊗️ 1周年 開始前の挨拶として、Qiita に投稿された iOS のテスト関連の記事がこの一年で増えたのか? という話から始まりました。 結果として、増えはしたけど…
iTunes Connect にバイナリのアップロードは完了したんだけど、 iTunes Connect: Processing stopped for HogeApp みたいなメールが来た。 何か問題があって bitcode の再コンパイルが止まってしまったようだ。 メール全文: iTunes Connect: Processing stop…
Unable to process application at this time due to the following error: This bundle is invalid. The Info.plist file is missing or could not be parsed. Please check it for embedded control characters.. iTunes Connect にバイナリアップロードし…
node: v8.2.1 でのはなし。 JavaScript でログを出力するときは console.log が一般的だけど、これだと改行が入ってしまう。 console.log('hoge') console.log('hoge') # hoge # hoge そうじゃなくて、 hogehoge って続けてログ出力してほしい。 ググる node…
Stripe の Order で送料を設定するパターンは 4 つある。 Free Flat-rate Callback Provider Stripe Document この情報は 2017-11-29 時点の情報であり、正確な情報は Orders API Dynamic Shipping and Tax Calculation を参照してほしい。 Order の種類 Ord…
Xcode で環境別にコンパイルするために Staging の Configuration を作ったんだけど、 -D STAGING を指定しても #if STAGING が false になっていた。 なんでかな〜 って設定眺めていたら、 Active Compilation Conditions が Debug になっていたのが原因だ…
CircleCI を使って、テストが通ったら Heroku に deploy するという流れを構築する。 サンプルリポジトリ: starhoshi/rails-circleci 環境 GitHub Rails 5.X Heroku CircleCI 1.X ここでのサンプルは 2.0 ではない ソースコードは starhoshi/rails-circleci…
Gemfile.lock を最新に保つため、bundle update を毎日自動でできるようにしたい。 Tachikoma.io というサービスもあるみたいだけど、 private repo は有料っぽいので自作した。 勝手に update されてアプリケーションがバグると困るので、 Gemfile.lock を…
import MediaPlayer ... override func viewDidLoad() { super.viewDidLoad() let player = MPMusicPlayerController.systemMusicPlayer player.setQueue(with: MPMediaQuery.songs()) player.play() } これで音楽が再生できたんだけど、再生開始した瞬間に…
TestFlight という、アプリのベータ版などを配布する Apple 純正のサービスがある。 TestFlight - Apple Developer これのいいところは「リリースするアプリと同じアプリをテストできる」というところ。 実際にユーザが使うアプリと同じもので動作確認ができ…
ここ最近は Apple の審査が早いけど、致命的なバグなどを出してしまったら急いでレビューして欲しい、そういう時のために apple expedited review というのが用意されている。 これを使うと優先的にアプリをレビューしてくれる。 しかしこれには注意が必要で…
段階的リリースとは WWDC2017 で発表された機能。 1%, 2%, 5% ... 100% と限られた人から段階的に自動アップデートされていく。 新機能のテストや、バグが起きてないかなどの確認で使えそう。 Apple 公式ヘルプ 自動アップデート用の段階的リリース(iOS、wa…
とある View の上に透明な UIView を載せて、 Swipe だったら透明な View でイベントをハンドリングして Tap だったら後ろの View にスルーしようとしたけど出来なさそうだった。 どういうことか こういう View があって、右にスワイプしたら数値を200にして…
Function を消したいけど、 Firebase Cloud Function 上では削除メニューなどが見当たらない。 その場合は GCP の方から関数を削除する。 https://console.cloud.google.com/projectselector/home/dashboard にアクセス 画面左上の「プロジェクトを選択」か…
Cloud Function をローカルで実行する方法を用意してくれている: ローカルでの関数の実行 | Firebase 手順はドキュメントに書いてある通りで簡単にできる。 firebase ライブラリの更新 $ npm install --save firebase-functions@latest $ npm install -g fir…
$ bundle exec fastlane release このコマンドを叩くだけでリリースビルド、iTunesConnect へバイナリ提出、IDFA 情報など入力して審査待ちの状態まで持っていけるようにした。 Deliverfile こんな感じに書いてる。 app_identifier "com.myapp" username "ap…
読んだ: 自戒 - <y> わかる。 自分の書くコードはクソでエンジニア向いてないからエンジニアやめたいって思うけど俺にはプログラミングしかないからコード書くことで生きていくしかないから勉強しないといけないけど勉強しても理解度が低いし人生なんのために生</y>…
個人アプリ2つを Xcode9 GM で動くようにした。 これは私のアプリの場合なので、違うプロジェクトでは不要なことや、他にもっとやらないといけないことがあると思う。 やったこと 1. Xcode9 DL Xcode - Apple Developer から DL してインストール。 Xcode8も…
普通の UITabBar は明るいすりガラスだけど、これを UIBlurEffect(style: .dark) と同じように暗くしたい。 Light Dark override func viewDidLoad() { super.viewDidLoad() tabBar.backgroundImage = UIImage() let dummy = UIToolbar(frame: tabBar.bounds…
10ヶ月ほど前に意気揚々と 退職エントリ を書いたくせに、1年経たず退職となってしまった。 最初に断っておくと、前職よりは100倍マシだった。 けど悩みや欲望というのは無限に湧いてくるわけで、色々考えて転職することにした。 結局なんでやめんの 何か大…
iOS 用の Push 通知 証明書を生成したい。 真心を込めて手動で生成することもできるが、ここでは fastlane pem でコマンドで生成する。 fastlane pem fastlane/pem at master · fastlane/fastlane 詳細は上の README みればやり方書いてる。 gem install fas…
本体アプリを Build した時に、本体アプリの CONFIGURATION を Embedded Framework 側に渡したい。 本体アプリを Debug Build Embedded Framework も Debug Build 本体アプリを Release Build Embedded Framework も Release Build というように、本体アプリ…
iOS の TodayExtension を実装していて、 TodayViewController の viewDidLoad が走るタイミングが最初はわからず苦労した。 viewDidLoad が呼ばれるタイミング 画面に表示されたタイミングで ほぼ毎回 viewDidLoad が呼ばれる。 TodayExtension を 10 こく…
Education×Technolog 業界の3社 Classi, LITALICO, Studyplus が集まって会社紹介やらパネルディスカッションやら LT やら懇親会しましょう、という会で LT してきた。 edtechem.connpass.com Lightning Talks 教育業界、というか BtoB 業界のモバイルアプリ…
昨今モバイル界隈ではアクセス解析に色々なサービスがあるが、それぞれにメリット/デメリットがあるため、複数併用するようにしている。4 つのサービスの個人的使い分けについて、iOS エンジニア視点で雑に書いていく。 なお、どれも無料枠での利用とする。 …
今までも dotfiles と Brewfile を Github に置いて環境構築手順を整えていたが、 dotfiles は homesick、 Brewfile は homebrew-file というのを使っていたため管理がややこしくなっていた。 しかもそれらは全然 commit してなくて古くなってしまったため、…