【Flutter】graphql_flutterのクライアントにTimeoutを設定する

graphql_flutterはgrahQLの有名なライブラリーであるApolloにインスパイアされたflutterのgraphql clientライブラリです。 FlutterでgraphQLを使用する場合はgraphql_flutterを使用するかgraphqlを使用することになるかと思います。 ネットワーク通信を行う…

【Flutter】AWS SNSからFlutterで作成したAndroidアプリにPush通知を送った際に「Unable to handle incoming background message.」が発生した際の解決方法

FlutterでPush通知を実装する場合、firebase_messagingライブラリを使用するかと思います。 私も使用していたのですが、AWS SNSと組み合わせたところ、バックグラウンドでPush通知を受け取ることができませんでした。 AndroidのPush通知に不慣れなこともあり…

【Server】APIにおけるHTTPメソッドの分類と意味

APIにおいて、URIとともにGETやDELETEといったHTTPメソッドを使用します。 GETやDELETEはそれぞれ意味がすぐにわかりますが、POST、PUTやPATCHおよびそれらの差異となるとたまに思い出すために時間がかかるため、備忘を兼ねメモします。 分類 GET リソースの…

2020年5-7月振り返り

5-7月の振り返り 5-7月の振り返りです。直近私生活で色々あり、ブログの更新が滞っしまいました。。。 5-7月は新しい会社に移って以降、下記のようなことをしていました。 iOSアプリ開発 DB論理設計 API Server実装 Pythonの実装修正 サービスの全体設計 全…

【GitLab】GitLab内のProjectを複製する方法

はじめに GitLab内で既存Projectを複製し新規Projectを作成する方法を記載します。 環境設定 以下の環境を使用しています。 GitLab 内容 複製元のProjectの操作 export projectを押下する Project export started. ~~ のバナーが表示される exportに成功する…

【iOS】PlaygroundでSwiftUIのViewを描画する

はじめに SwiftUIで簡単なView構成を試したいときにわざわざProjectを作るのもめんどくさいなという時がありました。 Playgroundを使用してViewの画面を作成し、表示や動作を確認する方法がわかりましたのでメモがてら記載します。 環境設定 以下の環境を使…

【iOS】UIViewをUIImageに変換する

はじめに UIViewをUIImageに変換するというよくあるやつです。 今だとこのやり方が良いのではないかというのが見つかったのでメモがてら記載します。 環境設定 以下の環境を使用しています。 Xcode 11.4.1 Swift 5.2 内容 いかに作成したextensionメソッドを…

2020年4月振り返り

4月の振り返り 目標の進捗状況の定期確認です。5月に入って久しいですが。。。 4月はPostgresの取り扱い、サーバーサイド開発、 Docker + Docker Composeの習得など新しい分野にいろいろ挑戦しました。 新しいことを学ぶのはとても楽しいですが、反面締め切…

【Kotlin】Exposedのテーブル定義からテーブルスキーマ生成のSQL Scriptを作る

はじめに 下記の記事の続きです。 iganin.hatenablog.com Exposedによってテーブル定義を比較的簡単に作成することができます。 また、作成したテーブル定義から実際にテーブルスキーマを作成することも可能です。 ただ、実際にサービスを開発する際はServer…

【Kotlin】Exposedでテーブル定義を実装する

はじめに Server Side で Kotlinを使用する際に候補として上がるフレームワークとしてSpringとKtorがあります。 SpringはJavaの頃から親しまれているWeb Frameworkです。それに対し、Ktorは最近できたKotlinベースのWeb Frameworkであり、CoroutineなどKotli…

2020年3月振り返り

3月の振り返り 目標の進捗状況の定期確認です。3月の振り返りがだいぶ遅くなってしまいました。。 4月から正社員になったのですが、そのための手続きや引継ぎ、新しい業務等で忙しく、ブログの更新に時間をさくことができなかった次第です。 次の職場では副…

2020年2月振り返り

2月の振り返り 目標の進捗状況の定期確認です。最近はコロナウイルスによってかなり大変な状況になってきていますね。。。早期に落ち着くことを祈るばかりです。。。コロナウイルスの蔓延もですが、経済の停滞による景気の悪化をとても心配しています。 私個…

【iOS】UITextViewでタップ遷移可能なバナーを表示する方法

はじめに UITextViewにHtmlの記述を反映させたいことがあります。その場合は下記のようなコードを書くことで、<a>タグでのリンクの表示などが反映可能です。 Stringのextensionメソッドとして作成しておくと便利です。 extension String { func convertToHtml()</a>…

【iOS】NavigationBarのUIBarButtonItemにバッジを付与する方法

はじめに アプリを作成する際に通知の数をバッジで表現することがよくあります。たとえば通知タブを作成し、タブにバッジを表示する、UIApplication.shared.badgeNumberに値を設定してアプリアイコンにバッジをつけるといった対応です。 開発を行う中で画面…

【iOS】iOS SDK 13 以上でのビルド時に ダークモード非対応とする際の注意点

はじめに iOS 13からダークモードが導入されてしばらく経ちました。 iOS SDK 13以上(Xcode 11以上)でビルドする場合、ダークモード非対応とする場合はそれ用の対応が必要です。 対応に漏れが発生しかけたので備忘をかねて記載します。 環境設定 以下の環境を…

2020年1月振り返り

1月の振り返り 目標の進捗状況の定期確認です。1月は業務以外で忙しかったこともあり、あまり目標にむけた活動ができませんでした。。2月以降は時間をさけるようにしたいです。 プライベートでは最近流行りのサウナに通いはじめました。疲れが取れるのもあり…

2020年の目標

2020年の目標 2020年は主に以下の領域に注力します。 データ構造とアルゴリズムの理解の向上 プロダクト作成の基礎力向上 アウトプット 身体能力の強化 各目標は上記の注力領域を達成するように作成しています。 データ構造とアルゴリズム プログラミング問…

2019年の振り返り

2019年の振り返り 通年の振り返りです。まずは目標の達成状況の確認から行います。 体の基礎づくり 目標: ベンチプレス 100kg デッドリフト 150kg スクワット 150kg 実績: ベンチプレス 100kg デッドリフト 120kg スクワット 120kg 達成率 33% 未達。 アウ…

2019年12月振り返り

12月の振り返り 目標の進捗状況の定期確認です。12月は数年ぶりに冬服を一通り買い換えました。体のサイズにあわなくなってきたことが一番の理由でしたが、普段きている物を変えるのは良い気分転換にもなりました。衣服は良くも悪くも自身の心持ちに影響を与…

ユニットテストについての少考

はじめに 今年読んだ以下の本の中で設計におけるユニットテストの立ち位置を語る箇所が多くみられました。「レガシーソフトウェアからの脱却」、「レガシーコード改善ガイド」、「CAREER SKILLS」、「クリーンアーキテクチャ」など。実際に仕事の中で使った…

「会計の世界史 イタリア、イギリス、アメリカ――500年の物語」の感想

読んだ本 会計の世界史 イタリア、イギリス、アメリカ――500年の物語作者:田中 靖浩出版社/メーカー: 日本経済新聞出版社発売日: 2018/09/26メディア: 単行本(ソフトカバー) 本書は会計に関して、エピソードを交え歴史的な経緯を追うようにして書かれた作品…

【iOS】Firebase RemoteConfig で作成する強制ダイアログ機構

はじめに Firebase Advent Calendar 12日目です。本稿では、Firebaseを使用した強制ダイアログ表示に関して記載します。ここで、強制ダイアログと表記しているのは、いわゆる強制バージョンアップダイアログに代表されるダイアログを表示し、それ以上のユー…

【Swift】Swift5.1からOptionalのEnumのswitch文をより簡単にかけるようになった

はじめに Swift5.0まで OptionalのEnumのインスタンスに対してswitch文を使用する際は下記のように.some(T)と.noneで記述する必要がありました。 enum Frequency { case daily case weekly case monthly case yearly } let frequency: Frequency? = .daily s…

2019年11月振り返り

11月の振り返り 目標の進捗状況の定期確認です。12月に入り、寒さがより本格化してきました。 僕はと言えば去年まで着れていた服がキツキツになり、とても苦しい日々を送っています。 きつすぎて腕が上がりません、通勤中につり革につかまる動作をする際に両…

Designship 2019 に参加しました

はじめに Designshipはデザイナー向けの国内最大級のカンファレンスです。東京国際フォーラムで11/23-24にかけて開催されました。そちらに参加してきましたので、感想等記載します。なお、1日目は体調を崩し参加できなかったため、後日アーカイブを確認の上…

【Swift】StructやClassスコープからSelfでstatic memberへのアクセスが可能になった

はじめに Swiftではstructやenumおよびclass内からstaticなメンバーにアクセスする際には以下のようにClass名.staticMemberかtype(of: self).staticMemberとする方法がありました。 struct Sample { static var hoge: Int = 0 func sampleFunction() { // ク…

【iOS】iOS13でSystemフォントがTimes New Romanフォントに変更されることがある

概要 タイトル通りです。バグレポートでも上がっているようにUITextViewなどでsystemフォントを指定していた際に、アプリ実行時にTimes New Romanフォントに変更されてしまう、という事象が発生しているようです。 NSAttributedStringKey の .fontに明示的に…

【iOS】Password Autofillの実装

はじめに iOS11からpassword autofillに対応することが可能になりました。 具体的には、パスワード新規作成時にiOSから提案される強力なパスワードを使用したり、keychainにユーザーID、パスワードのセットを記録し、アプリ使用時やWebサイトのログイン時に…

2019年10月振り返り

10月の振り返り 目標の進捗状況の定期確認です。今月に入ってめっきり寒くなり、体調を崩し気味でした。11月は元気に過ごしたいです。 プライベートでは友人に触発され第7世代iPadを購入しました。Kindleでは少々読みづらいためあまり進められていなかったKi…

【Swift】Swift5.1からstructのイニシャライザの自動生成でプロパティのデフォルト値が考慮されるようになった

はじめに Swiftで使用されるstructは定義したプロパティにしたがってイニシャライザメソッドが自動生成されます。 例えば下記のようにUserを定義した場合に自動でイニシャライザが生成されます。 struct User { var id: Int var name: String } // init(id: …