hayabusabusa

iOSエンジニアです。 Swift/Flutter/Firebase/TypeScri…

hayabusabusa

iOSエンジニアです。 Swift/Flutter/Firebase/TypeScript が好きです。 ギターを弾いたり曲を作ったりもします。

最近の記事

  • 固定された記事

バスのアプリで使用した技術 iOS編

概要大学のスクールバスのアプリを作る上で使用した技術について紹介していきます。 今回はiOSアプリを開発する上で使用した技術などを紹介しています。 ちなみにソースは公開しています。 そもそもなぜ作ったのかこのアプリを作り始めたのは今年の冬ごろで、 その頃 MVVM にハマっていたり、CocoaPods の自前管理を試したくて 何かアプリを作りたいなーと思っていました。 そんな時に大学スクールバスのアプリがあったことを思い出して、 ふと見てみると 2020 年度のものには

    • LINE Bot を Firebase Cloud Functions を使って実装してみてハマったこと

      はじめに年末に友達と何か簡単なものを作ってみようという話になり、LINE BOT を作ってみました。 実装自体は本当に簡単で Qiita 等にもやり方が詳しく載っていたので、ほとんどその通りやれば実装自体はスムーズに行うことができました。 ただ、ちょいちょいハマったポイントがあったので紹介します。 ちなみにコードは全て TypeScript で記述しています。 秘匿情報の扱いについてLINE Bot を利用するためにチャンネルシークレットとチャンネルアクセストークンの2

      • iOS 開発における MVVM の Model の実装について

        概要iOS 開発に置いて MVVM が流行りはじめてから随分時間が経ったと思います。 その間にたくさんの方が MVVM や RxSwift に関する知見を公開してくださっていて、自分も参考にさせていただいていました。 しかしその中でも MVVM における Model の実装について色々思うことがあったのでまとめてみます。 Model の実装について思うこといろんな記事や OSS の Model の実装を見てみると、結構バラバラなことがわかりました。パターンとしては以下の

        • 表示のために使ったりする enum は Equatable に準拠させておいた方がテストの時に役に立つ

          概要自分はよく TableView に複数の種類のセルを表示させたい時に、値つきの enum を使って実装したりします。 enum CellType { // セルに表示させる API から受け取ったレスポンスなど case article(with: APIResponse) // 画像の URL など case image(with: String) // ページネーションのためにインジケーターなど case indicator}

        • 固定された記事

        バスのアプリで使用した技術 iOS編

        • LINE Bot を Firebase Cloud Functions を使って実装してみてハマったこと

        • iOS 開発における MVVM の Model の実装について

        • 表示のために使ったりする enum は Equatable に準拠させておいた方がテストの時に役に立つ

          Combine + UIKit でタイマーを作ってみた

          概要久しぶりに iOS エンジニアらしい記事を書く気がします😎 最近色んな勉強会がオンラインで開催されていて、 地方に住む自分としてはすごくありがたく、Zoom 等を利用して参加させていただいています🙇‍♂️ そんな中 iOS13 から追加された Combine フレームワークについて、 そろそろ使ってみるのもいいんじゃない?と言った内容の発表が多くなってきた気がしたので、UIKit + Combine でタイマーを作ってみました。 SwiftUI との組み合わせも気に

          Combine + UIKit でタイマーを作ってみた

          Figma で Gif 画像が作れるプラグイン GiffyCanvas が面白かった

          概要最近 Figma が便利すぎて、ちょっとした素材なんかも Figma で作ってしまっています。 そんな Figma で Gif って作れないかな?と思って調べてみたところ、 GiffyCanvas というプラグインを使えば作れたので紹介します。 使い方今回は試しに以下のようないいねボタンのアニメーションっぽい Gif を作ってみました。 ■ Frameを用意する Gif に変換するには複数の Frame が必要になるので、まずは Frame を一つ用意します。

          Figma で Gif 画像が作れるプラグイン GiffyCanvas が面白かった

          iOS開発初心者だったあの頃の自分にアドバイスしたいこと UI編

          概要ふと学生時代に作ったプロジェクトを見返していて、なんとも言えない気持ちになったので、Swift を始めたばかりで、独学+手探りで勉強していたあの頃の自分に「こうしたほうがいいよ」と思ったことをまとめたいと思います。 その中でも今回は UI に関連することについてです。 Swift を始めたばかりの初心者の方にも役に立つ内容だと思います。 不明点などがあれば気軽に質問していただけると嬉しいです🙇‍♂️ main.storyboard に全画面作るのはやめようまずはこち

          iOS開発初心者だったあの頃の自分にアドバイスしたいこと UI編

          Github Actions と fastlane で iOS アプリをアーカイブしてビルドを提出する

          概要Github Actions と fastlane を使って iOS アプリをアーカイブしてストアにアップロードしてみました。 Firebase App Distribution を使ってベータ版を配信したりする記事は結構ありますが、リリース前まで持っていくのはなかったので手順を残しておきます。 注: Github Actions の制限の関係もあるので、Private なリポジトリで試す時には無料枠に注意してください。 Secrets に設定するもの証明書やパスワ

          Github Actions と fastlane で iOS アプリをアーカイブしてビルドを提出する

          docsify で作ったドキュメントを Firebase Hosting でホスティングさせる + CIで回してみる

          概要docsify で作ったいい感じのドキュメントを Firebase Hosting でホスティングさせてみます。 手順■ 必要なファイルを準備 以下のコマンドでまずは docsify の初期化を行います。 npx docsify-cli init ./docs これでカレントディレクトリに docs フォルダ が作成されます。 今回はこの docs フォルダ 内のものを Firebase Hosting で公開させてみようと思います。 続けて Firebase

          docsify で作ったドキュメントを Firebase Hosting でホスティングさせる + CIで回してみる

          Firebase Cloud Functions で PDF を画像化しようとして Cloud Run にたどり着いた 後編

          概要Firebase Cloud Functions でなんとか PDF を画像に変換できないか 色々試したことと、最終的に Cloud Run を利用した話です。 前回の続きです。 Firebase Cloud Functions だけでは PDF を画像にすることができなかったので、今回は Cloud Run を使ってどのように解決したのかを紹介します。 Cloud Run とはCloud Run は Docker で作成したイメージやアプリケーションをコンテナとして

          Firebase Cloud Functions で PDF を画像化しようとして Cloud Run にたどり着いた 後編

          Firebase Cloud Functions で PDF を画像化しようとして Cloud Run にたどり着いた 前編

          概要Firebase Cloud Functions でなんとか PDF を画像に変換できないか 色々試したことと、最終的に Cloud Run を利用した話です。 長くなってしまったので前後編で2つに分けました。 前編では Cloud Run に行き着くまでに試したことを紹介しています。 PDF を画像にしたいPDF というファイルは便利で、サービス上で PDF を扱うことは結構あると思います。 Firebase を使っている場合 Storage に PDF を保存、

          Firebase Cloud Functions で PDF を画像化しようとして Cloud Run にたどり着いた 前編

          バスのアプリで使用した技術 バックエンド編

          概要大学のスクールバスのアプリを作る上で使用した技術について紹介していきます。 今回はバックエンド側で使用した技術を紹介しています。 7/2 追記: 公式のカレンダーを監視する仕組みについて追記しました。 全体の流れまずバスの時刻表のデータをどのように取得しているのか、全体の流れを画像にしてみました。 公式のPDFからデータを抽出し、スプレッドシートへ全てのデータは公式の時刻表とカレンダーのPDFから取得しています。 ただ、PDFのままではどうしようもないので、PDF

          バスのアプリで使用した技術 バックエンド編

          TypeScript の型定義ファイルがなかったので自前で作ってみた時のメモ

          MagicEye.js というステレオグラムが簡単に作成できるライブラリを TypeScript でも使えるようにしたくていろいろやったことのメモ。 とりあえずフォークするnpm は Github に置いているパッケージもインストールできるみたいなので、ひとまずフォークして自分のところで作業したものを npm でインストールすることにした。 型定義ファイルを追加index.d.ts を追加して package.json の types にパスを指定してあげればパッケージに

          TypeScript の型定義ファイルがなかったので自前で作ってみた時のメモ