アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


Unity .NET4.6 でDateTime.NowがUTCの時刻を返すバグ (iOS / Android)

DateTime.Nowで正しい時刻が取れません。UTC時刻が返ってきます。
TimeZoneInfoでJSTを取得しようとしても駄目。

FileNotFoundException: Could not find file "/usr/share/zoneinfo/JST".
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options)

どうやら、タイムゾーン情報のファイルが実行環境に含まれていないことで起こっているみたい。

Unityのフォーラムでも困っている人たち見つけました。
.NET 3.5でやるしかねぇのか。。

https://forum.unity.com/threads/android-datetime-now-is-wrong.488380/

Non-WEBデザイナーのデザインをコーディングする際は工数が3倍かかる理由

何らかの理由によりWEBデザイナーではないデザイナーさん(グラフィック、プロダクト、エディトリアルとか) の作ったデザインをコーディングする、という仕事がごくたまにあります。
僕の場合は3年に一回くらい。

「わかりましたー」と適当に受けていると、後から大変なことになる、という経験を何度かして、
いつも「もうNon-WEBデザイナーさんの仕事は受けない。受けるとしたら工数を2倍で見積もった上で受けるべき!!」と固く誓うのですが、どういうわけかいつも忘れてしまっており、笑
あとから地獄を見ることになります。

今日はなぜ、Non-WEBデザイナーさんのデザインをコーディングする際は工数が3倍かかるのかをメモしたいと思います。

まず、その前にNon-WEBデザイナーさんにデザインを起こしてもらう際に伝えるべきことは以下です。

  • デザインファイルはカラーモードをRGB、単位をピクセルにしてください
  • Photoshopの場合はRetina対応で2倍(もしくは3倍)サイズでデザインを作成してください
  • バイスサイズ (スマホ / PC) と、レスポンシブデザインとは何か
  • 文字詰めはできません

何も言わなければ単位はミリメートル、カラーモードはCMYKで作成されて上がってきます。
普段彼らはそうされているので当然のことです。
ちゃんと伝えないこちらが悪い。

次。

Non-WEBデザイナーさんにありがちなこと

レスポンシブデザインが考慮できない

画面サイズが変わった時にここどうなるの?という部分が考えられていないデザインが上がってくるため、こちらでよい対処を考えて提案してあげる必要があります。
事前にレスポンシブデザインとは何かを説明したとしても、最初から完璧に考慮されたデザインをあげられることは稀だと思います。
ある程度はこちらでフォローする必要があります。

コーディングが終わった後に大幅な修正を求めてくる

自分が起こしたデザインが、WEBサイトになった時にどうなるか(見え方、使いやすさ、触りごこちなど)がイメージできていないため、コーディングが完了したあとに色々変更したくなる。
特に、固定ヘッダー、固定フッターとか。
また、レスポンシブデザインについても、現物を見るまで想像がついていない場合がほとんどなので、コーディング後に変更したいと思う場合が多いようです。

イラレ上で文字の大きさをフォントサイズでなく文字の拡大、縮小率で指定している

これ地味にきついです。こちらでフォントサイズを計算して算出しないといけなくなるので、事前に言っておくのが吉です。

難易度が高かったり、工数がかかるデザインの変更をカジュアルに求めてくる

デザインを変更するとコーディングにどのような作業が発生するかが全く想像がつかないため、カジュアルにデザインをポンポン変更する。

ドメインの設定、メールの設定なども言わなくても全部見積に含まれているものだと思っている

この辺も事前に確認しておくのが吉です。

「今さら言うな!!」と思うことはしばしばですが、知らないものは知らないのです。
知らずにやっている人々に対して「追加料金です」とはなかなか言い出せず、なし崩し的に対応してしまうことがほとんどです。(あくまで私の場合は)

こういった修正へ対応することや、こういったことを事前に防ぐために綿密な打ち合わせと、デザイナーさんへの様々なフォローで想像以上にものすごく時間を使います。自分の実感値としては2倍でも足りないくらい。

サービスし過ぎるとこちらのモチベーションも下がってくるので、ミスが起こりやすくなり
お互いが不幸になってしまいます。

Non-WEBデザイナーさんとのWEBのお仕事はある程度気を引き締めて臨むようにしたいと思います。

また、WEB以外のデザイナーさんも、もしこちらの記事を見ていらっしゃいましたら、
ぜひエンジニアに歩み寄りをしていただけると双方にとってとても幸せな結果になると思います。
よろしくお願いいたします。

【React Native】error: PCH was compiled with module cache path

React Nativeやってて、ディレクトリごとプロジェクト移動したらエラーはくようになった。以下みたいなメッセージ。

error: PCH was compiled with module cache path

解決法

ios/build 以下を削除するとかいけつしました。

Hirb Error: PG::InvalidColumnReference: ERROR: SELECT DISTINCTではORDER BYの式はSELECTリスト内になければなりません

Railsで以下のエラーが出た。調査中。

Hirb Error: PG::InvalidColumnReference: ERROR:  SELECT DISTINCTではORDER BYの式はSELECTリスト内になければなりません

stackoverflow.com

Ruby(Rails) + AjaxでS3バケットにファイルをダイレクトアップロード

参考URL

Uploading From Rails to AWS S3 With PreSigned URLs - Stuff… And Things…

Qiitaの画像アップロード機能も簡単に実装できる。そう、S3ならね。 - Qiita

詳しくはあとで書きます

JS + canvasで画像アップロード前にファイル容量を落とす

iPhoneの画像回転問題なども吸収してくれるライブラリ github.com

matz.hatenablog.jp

iPhone / Android などで、ファイルの容量制限はあるか?

iPhoneの場合

こちらのページによると、 Large canvas dimensions don't render on iOS Safari · Issue #476 · paperjs/paper.js · GitHub

以前は以下がappleの公式サイトに記載されていたようですが、現在は記載されていません。

キャンバス要素の最大サイズは、RAMが256 MB未満のデバイスでは3メガピクセル、256 MB以上のRAMでは5メガピクセルです。

記載されていたとされるのは以下のページ。
developer.apple.com

paperjsの投稿は2014年5月のもので、当時最新OSはiOS7。
現在の最新はiOS10 (もうすぐiOS11) で、サイズ制限はすでになくなったと考えていいのかな?

TODO

実機で確認してみる必要がある。

参考になりそうなページ

iOS上のブラウザでの画像サイズ制限。 - freefielder.jp 少し古い情報だけど参考になりそう。

iOSにおけるリソース制限 - console.lealog();