decochのブログ

フリーランスのiOSエンジニア decoch のブログです

アプリ起動をショートカットする

仕事をしていると色々なアプリを起動する。アプリの切り替え(⌘ + Tab)だと次に作業したいアプリが何個前に開いていたか覚えておらず、切り替えに手間取りストレスを感じるため解決策を考えた。 BetterTouchToolというアプリを使うとショートカットキーを定…

ヘッドホン Bose Noise Cancelling Headphones 700

これまでイヤホンを使っており、よく内耳炎になっていたので思い切って高級ヘッドホンを購入した。 デザインがよく、ノイズキャンセリングの性能もよくほとんど雑音が聞こえない。 集中したいときやZoomでの会議に使っていて非常に満足している。 頭の形がお…

Firestore × Flutterでリアルタイムにデータ変更を検知する

Flutter と Firebase を使ってリアルタイムのアプリを開発する方法を説明していきます。 firebase.flutter.dev ライブラリの追加 pubspec.yaml を変更して追加します。 dependencies: flutter: sdk: flutter firebase_core: "^0.7.0" cloud_firestore: "^0.1…

Flutter開発を始めるときに最初にやっておくこと

Flutterのプロジェクトを立ち上げる機会があり、プロジェクト開始時にやっておいた方が良いと感じたものを列挙しました 目次 Widgetの学習 静的解析 CI/CDの自動化 状態管理方法の選定 Widgetの学習 Flutter開発をするにあたって、画面は提供されているWidge…

Web support for Flutter のプロジェクトを GitHub Action で Firestore Hosting にビルド&デプロイする

年末休みの間に、Flutter Webを使ったサービスを作りFirebase Hosting で公開したので公開手順をまとめました。 Flutter Webでアプリ開発する 2020年12月時点だと、Flutter でWeb開発をするには beta 版を使う必要があります。 セットアップはFlutterの環境…

2020年 買って良かったもの

ディスプレイとゲーミングチェア decoch.hatenablog.com decoch.hatenablog.com リモートワークが増えたのですぐに購入しました。最初は知らないメーカーで不安もありましたが非常に費用対効果が高かったです。 ノートパソコンで作業をすると姿勢が悪くなり…

2020年の振り返り

仕事納めしたので1年を振り返ってみたいと思います。(今年から毎年振り返りをちゃんとしていきたい) フリーランス 今年の2月末に体調を崩してしまい会社を退職後したのですが、すぐに新型コロナウイルスの影響がありました。 この影響で面接予定の企業との…

SwiftUIのプレビューがうまくいかない時はカラー定義を見直してみよう

これはなに? SwiftUIで開発をしていると開発初期はプレビューを使い効率的に開発ができていたのですがコード量が増えたとたんプレビューが表示されなくなりました。 どういったコードを書くとプレビューが表示されなくなるのか気になったので調べてたもので…

iOSのプロジェクトに入ったらやること

SwiftでのiOSアプリ開発の仕事を請けることが多いのですが、 プロジェクトの初期や、途中から入った時に最初にやっておいた方がいいことを自分の備忘録としてまとめてみた。 Bitriseへの移行 dSYMのアップロード自動化 テスト自動化 TestFlight配布の自動化 …

KVS(Key Value Store)における履歴データのキー設計

目次 これは何? 履歴データのキー設計 この設計をしない方が良いケース まとめ これは何? 大量のデータを扱うようになったためDynamoDBやFirestoreなどのKVSを扱う機会が増えています。KVSであるDynamoDB、Cloud Firestore、Cloud Bigtableで大量データに…

iPhoneアプリを実機確認するためのApple Developerの証明書更新

目次 これは何? 登録方法 証明書更新 まとめ これは何? iPhoneアプリ開発をする際に、実機を使った動作確認をすると思います。AppleDeveloperにIDが登録されているアプリの場合、AppleDeveloperへの端末登録や証明書の更新など手間がかかったので手順をま…

HomebrewでMacの初期設定を効率化する

目次 なぜこの記事を書いたのか 効率化するためにやっていること まとめ なぜこの記事を書いたのか 昨年から職場が変わったり支給されているPCが変わったりでMacの初期設定をする機会が4回ほどありました。 使っているアプリをすべて探してダウンロードする…

GCP Firestore: データの関係性ごとに適当な設計を考えた

目次 なぜこの記事を書いたのか Firestore とは 設計について まとめ Firestore なぜのこの記事を書いたのか 直近一年間に GCP の Datastore, Firestore, AWS の DynamoDB など色々なKVSを触る機会に恵まれました。 もともとRDBを使っていたため最初はKVSの…

トラックポイント付きのメカニカルキーボード Tex Yoda Ⅱ を使ってみた

PC

HHKBを購入してからずっと使っていたのですが、 キー配列が特徴的でMacbookのキーボードで作業をするときに打ち間違えが多くなったことや、 元々ThinkPadキーボードを使っておりトラックポイントの良さを忘れられず、 いろいろ調べていたところTexYodaが非常…

作業用にゲーミングチェアを買った話

PC

昨今のウィルスの影響でリモートワークする機会が増えてきたのですが、ソファや食卓で作業をしていると腰に来てしまったので、オフィスチェアの購入を検討していました。 ただ、オフィスで使っていたアーロンチェアは高く買うのを躊躇っていたところ、backsp…

HKCの34インチのウルトラワイドディスプレイを買った

PC

自宅ではノートPCで作業をしているのですが、うつむき加減で作業をすることになり、肩こりが激しくので、外部ディスプレイの購入を検討していました。 作業スペースが小さかったので、RoostのStandを使って工夫をしていましたが、 大きな作業スペースを手に…

iOS Clean Architecture を採用した振り返り

目次 クリーンアーキテクチャとは 採用した背景 アプリの構成 開発してみて 最後に クリーンアーキテクチャとは レイヤーアーキテクチャの一種で、ソフトウェアをレイヤーに分離し、依存性ルールに従うことで、テスト可能なシステムを作成することができる。…

CircleCIの定期実行を使って、毎日の作業を効率化しよう

目次 効率化したかった作業 CircleCIの定期実行とは 設定方法 効率化したかった作業 こちらのブログでまとめたが、日々のタスク管理とポモドーロをKanbanFlowでまとめていて、作業時間はTogglにまとめているので集計作業を毎日行う必要があった。 decoch.hat…

理想のポモドーロ環境を手に入れたのでまとめてみた

はじめに 以前からポモドーロでタイムマネジメントをしていて、以前読んだSOFT SKILLSで紹介されていたKanbanFlowが理想的なアプリだったためずっと使っている。 ただ、KanbanFlow集計機能が弱く、振り返りのときになんとかならないかなーと思っていたところ…

fastlaneを使ったiOSアプリのCI/CDにおける最低限作っておいた方が良いワークフロー

目次 はじめに CIのワークフロー CDのワークフロー DSYMのアップロード 終わりに はじめに 普段iOSアプリの開発をしておりGitHubActionとfastlaneを使ってCI/CD環境を作る機会があったため、そのときに最低限あった方が良いと思ったワークフローをまとめまし…

N予備校の大規模Webアプリコースを修了しました

目次 N予備校とは なぜやったのか 感想 終わりに N予備校とは N予備校(エヌよびこう)はドワンゴが提供するeラーニングサービス(インターネット予備校)である。主に学校法人角川ドワンゴ学園が運営するN高等学校の生徒向けに提供されているが、主要なコー…

HHKB (Happy Hacking Keyboard Professional HYBRID Type-S) を買ってみた

ワイヤレス接続できるキーボードを探していて、ネットで色々調べていたらHHKBにワイヤレスのものがあると知り思わず購入しました。 www.pfu.fujitsu.com 箱 キーボード 触ってみて 打ち心地は非常によいです。静電容量無接点方式は他のタイプのものと全然違…

SwiftUIで書くiOSアプリハンズオン(QiitaClientを作ってみよう)

SwiftUIを使ったハンズオン用に記事を作成しました 使用するAPI 今回はQiitaAPiを題材とします。(ドキュメント) 登録不要で使えて、例えば、 https://qiita.com//api/v2/items で、投稿を取得できます。 [{ rendered_body: " <h1> <span id=" プロローグ " class=" fragment "></span><a href="# % E3 % 83 % 97 % E3 % 83 % AD % E3 % 83 % AD % E3 % 83 % BC % E3 % 82 % B0 "></a></h1>

Roost Laptop Stand を購入してみた

目次 Roost Laptop Stand とは なんで買ったのか 買ってよかったこと Roost Laptop Stand とは 超軽量で簡単に持ち運びできるノートパソコン用スタンドで、ノートパソコンの高さを目の高さまで上昇させることができます。 仕事やコンピュータ使用が原因の負…

Flutterで書くiOSアプリハンズオン(QiitaClientを作ってみよう)

Flutterを使ったハンズオン用に記事を作成しました 使用するAPI 今回はQiitaAPiを題材とします。(ドキュメント) 登録不要で使えて、例えば、 https://qiita.com//api/v2/items で、投稿を取得できます。 [{ rendered_body: " <h1> <span id=" プロローグ " class=" fragment "></span><a href="# % E3 % 83 % 97 % E3 % 83 % AD % E3 % 83 % AD % E3 % 83 % BC % E3 % 82 % B0 "></a></h1>

SchemaPolicyCheckでDB設計ルールを自動チェックしよう

目次 SchemaPolicyチェックとは 設定方法 SchemaPolicyチェックとは プログラミングをする際にはコードのチェックスタイルを使っていると思います。 Ruby では rubocop, JavaならIntelliJやEclipseのフォーマッタが一般的ですね。 コードよりも気軽に変更で…

Elasticsaerchでサジェスト検索を作ってみよう

目次 Elasticsearch の説明 検索の基礎知識 サジェスト検索をやってみる まとめ Elasticsearchとは Elastic社が開発している全文検索エンジンで、リアルタイムデータ分析、ログ解析、全文検索など様々な用途に使われています。 検索の基礎知識 Elasticsearch…

DBFlute-IntroでDB変更履歴を管理する

目次 HistoryHTMLとは 実際にHistoryHTMLを生成する コメントを書こう まとめ HistoryHTMLとは スキーマの変更履歴を人が見やすい形にまとめたドキュメントです。 DBFluteが自動生成のためにメタデータを取得するたびに、一つ前のメタデータと内容の比較をし…

Railsで外部キー成約を追加した際のIndex名のまとめ

普段 Ruby on Rails でつくられたWebサービス開発をしています。 この前、既存カラムに外部キー成約(FK)を追加したとき普段と違う命名の index名になってしました。 FK追加時にどのような index 名になるのか気になったので、いろいろなパターンを試してま…

Railsのスキーマ情報をDBFlute-Introで管理しよう

前回 DBFlute-Intro を使ってデータベースのドキュメントを管理する方法をまとめました。 decoch.hatenablog.com 私は普段、Ruby on Rails でWebサービスの開発をしているのですが、その際にいくつかエラーが出てしまったのでその回避方法をまとめます。 DBF…