『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

アプリへの招待リンクをFirebase Dynamic Linksを使って実装した

はじめに

前回、サービスを終了したからメインロジックの解説を書いたときに、最後の方に頑張った機能を羅列したのでそれを記事化しようという流れです。
今回は、 Firebase Dynamic Links (以下 FDL ) を使って招待リンクから招待された人がアプリを初回起動したあとにチュートリアルや会員登録が終わったタイミングで友達追加画面を表示するという要件があったので実装したのでそれの備忘録的な?

前回書いた記事は以下

nnsnodnb.hatenablog.jp

環境

  • iOS 11.x〜
  • Xcode 10.2.1
  • Swift 5.0.1
  • Firebase

ちょっとだけサーバサイドの話も噛んだのでそれの環境は以下

続きを読む

所属の業務で作ったiOSアプリをサービス終了させたのでアプリのメインロジックの解説を書く

はじめに

こんにちは、久しぶりに髪の毛を派手髪にした直後にメイリッシュでバニーガール集団を見ながら書いている記事です。*1
なお、1日で書き終わることもなく無事後日持ち越しでオフィスで書いてます。

今回は、仕事で作った iOS アプリのサービスが終了したあとにメンバーから公開してもいいという了承をもらって(了承というか書いてほしいと言われた)、私もそろそろ新しい記事を書きたいなという感じになっていたのでアウトプット的に書きます!

この記事本当は、 iOSアプリが終了している状態でスクショをサーバにアップロードする仕組みはターゲット層に怖いと言われた というタイトルだったのでこれ以降、このタイトル前提で書かれてる部分があるので許してください!!

このアプリのターゲット層は 1,000% このブログ読まないと思うので、一番最後になぜ怖いと感じられてしまったのかと書きたい。

ちなみにこんな感じにサービスは幕を閉じた

先にサービスの紹介をさせてください

Pipe というスクショを親友間だけで共有するアプリでした。

差別化のポイント

  1. ユーザが自分自身で投稿をしなくても自動的に投稿される(投稿されて24時間したら見られなくなる)
  2. 友達以外には見られない
  3. トークスクショ(LINE や Twitter DM 、 Facebook Messenger 、 Instagram DM 等)のスクショは公開されない
  4. プッシュ通知をオフにしていても写真ライブラリへのアクセスとネットワークと電池があれば新しいスクショを自動でアップロードする
続きを読む

DjangoでPyMySQLを使うのそろそろやめよう

はじめに

こんにちは。
今回は DjangoPyMySQL を使うのが主流(私の観測範囲では使ってる人が多い気がする)だと思うんですが、「いや、そろそろ使うのやめようぜ」ということを記事にしたいと思います!

今回の実装したコードは以下です。

bitbucket.org

どうして?

そもそも、 PyMySQL 自体は、Djangoの推奨 API ドライバではない。

docs.djangoproject.com

PyMySQL が選ばれる理由として、私が考える中では、 Pure Python だからインストールに失敗することは(ほぼ)ない。ということかなぁって思いました。
私はそうだった。

実際、 Django が推奨している mysqlclient はインストールバトルが勃発することが多々あった。あった。あったよ。
今回は、その対処方法も後に紹介することにしよう。(なぜ急にこの口調。

人気的にはやっぱり、 PyMySQL のほうが圧倒的!人気!

python.libhunt.com

導入

なぜ、私が PyMySQLDjango で使わなくなったのかを含めて、パフォーマンスが mysqlclient にすることによって上がるのではないかと仮説とともにこの記事を書いていきたいと思います。

続きを読む

個人でリリースしているアプリのアイコンをランサーズを通じて発注した

はじめに

デザインセンスのないみんな〜〜〜!!
息してる〜〜〜〜〜??????

ウッ...苦し....(ここでブログ記事が終わっている

ということにならないように。

タイトル通り、アプリのアイコンをランサーズを使ってデザイナーさんに作っていただきました。

続きを読む

Django (DRFを含む) で日付をレスポンスに含めて Swift の Codable で正常にデコードさせる

はじめに

私は、よく Django + iOS(Swift) を使ってサービスを作ったり作らなかったりしているわけですが、以前このようなことになりました。

例えば、 Djangodjango.utils.timezone.now なものを DRFrest_framework.response.Response に直で返したりとか馬鹿なことをやってたら
iOS 側の API クライアントがデコードエラー吐き出してなんだろうって思って調査したらフォーマットが rest_framework.serializer.Serializer とかを通さないとそのまま django.http.response.HttpResponseBase の中身に入ってしまってバグってしまうんだなっていうことがありました。

詳しくは、こちらですね。

github.com

bytes または str でないとそのまま str によって展開されてしまうっていうやつ

>>> from datetime import datetime
>>> str(datetime.now())
'2019-06-18 14:33:53.148964'

という感じ。

それで本題。これを Swift の JSONDecoder で対応させるか、 Django 側で一括で処理させるかっていうやつ。

環境

続きを読む