taiki-t's diary

きぎょうにっき, React Native, Rails そして雑多な記録: The world is waiting for you to give it a meaning.

試訳: combineReducers

Redux documentsの「Using combineReducers」の最初だけざっと試訳してみた。推敲してないので間違ってたら申し訳ない。とはいえ割と合ってると思う。まあやってみたのを手元に置いておくだけなのも勿体無いので置いておく感じ。改善は自由に。 combineReduc…

Lylicaというサービスをリリースした。

Lylica (りりか) というサービスをリリースした。iOSアプリで。 Lylica - 街のおすすめが分かるSNSを App Store で 「世界をもっとダイナミックにしたい」 そう思って作ってきた。きっかけは、昨年(2016)に翻訳書1を出版したことに遡る。 昼間は会社、夜は翻…

メモ:React Native で e2eテストできそうな detox

https://github.com/wix/detox これ使えそうと思ったけど、Permission用Alert周りの処理で詰んだ。 工夫すればできそうだけどまた後ほどtryする。 導入自体はすごく簡単だった。 このIssueがcloseする頃にはそこらへんいい感じになってるのではと期待: githu…

react-devtoolsをReact Nativeで使う

React Nativeで開発でのデバッグにはNuclideを使っていたけど、react-devtoolsも使える。 インストール方 グローバルにインストールする場合 npm install -g react-devtools これでreact-devtoolsとterminalでやれば走る。 プロジェクトにインストールする場…

Mark Zuckerberg's Commencement address at Harvard

www.youtube.com What I thought listening to this is: “It’s not the world that gives you the meaning, the world is waiting for you to give it the meaning.”

GraphQL Mutation

Relay使ってての話なんだけど Mutationはできる限り単一責任にした方が、のちのユースケース変更時にコスト低そう リソースに対する状態変更は、Mutation名を動詞にしてidだけ送るとクライアントとサーバー側を疎結合にできて良さそう UpdatePostStateMutati…

はてなブログthemeのevergreenにサイドバーをつけた

つけたかったので #container { width: 1200px; } #container-inner { min-width: 1200px; } #main { float: left; max-width: 780px; margin: 0 auto; } こんな感じ。適当にやったらできたのでよかった。 まあ正確にはつけたというよりフッターを移動した、…

メモ: puma on heroku, worker と thread

web serverとしてpumaを用い、Railsアプリケーションをherokuで運用するにあたり workerやthreadという話が出てきたのでメモ。 ネタ元は: Deploying Rails Applications with the Puma Web Server | Heroku Dev Center Workers Workerとは pumaの文脈でいうw…

メモ: React Navigation を使い始める時に確認すると良さそうなこと (v1.0.0-beta.10時点)

Release v1.0.0-beta.10 · react-community/react-navigation · GitHub React Navigation V1.0.0-beta.10が出た。そう、React Navigationはまだbetaが取れてない。 使い始める前に現状どんな問題があるか確認しておくと時間を節約できると思う。 どこを確認…

Relay Modern rewriteについてのメモ

We still had that long backlog of ideas, but we knew that we were adding to the tail of the queue faster than we were shifting from the head of it. It was a scary prospect, but we came to the conclusion that it was time to burn it all down…

運がいいとか悪いとか

よく運気をあげるとかいう話を聞く。運をよくすれば物事がうまくいくとか。ただそれだけを聞くと眉唾というか実態のない怪しいものを崇めるような雰囲気が漂う。 運気をあげるために日頃の行いをよくしなさい、的な。 これ、運気っていうとよくわからないけ…

Sketch3 グラデーションでぼかす

かなり前にこんな記事を書いた taiki-t.hatenablog.com グラデーションでぼかす方法はまた今度紹介するなどと言いつつずっと書いてなかったので手軽に手順だけまとめておこうと思う。 四角を二つ重ねてかく。一つ書いて⌘ + Dすれば楽だろうか。 その二つの四…

西日暮里.rb 36回目「Electronではじめるアプリ開発」発売記念 LT 大会!」の記録

nishinipporirb.doorkeeper.jp 参加してきた。というか主催者の一人w 今回はオーガナイザーの一人であるじょうさん (@joe_re) が本↓を執筆したので記念LT会をした。 gihyo.jp テーマは自由。けれど本がElectronということもあり、かなーりfrontよりのLT会だ…

Relay Modernへの移行検討をした

結論: もう少しドキュメントとサンプルが増えてからにしよう(rcが外れる頃かな?) 追記: 2017/08/21: 移行しました: Relay Modernに移行した - taiki-t's diary 背景 現在アプリを作っていて、フロント側の構成はReact Native + Relay + Reduxという感じだ…

Grammarly cm の曲

Youtubeで流れていいなと思った Soul City の Here I come というやつらしい ↓ みたCM www.youtube.com 調べてみるとMarmosetという音楽出版社で配信している。映像に合わせるBGM向けのライセンス提供が主な業態らしい。個人で試聴するぶんには無料でダウン…

React Navigationにコントリビュートした

React Navigation, APIはいい感じなんだけど現状beta版ということもあり、プロダクションで使っていこうと思うとなかなか機能が足りない。 それで2017/4/7現在では、v1リリースに向けて最低限必要な機能を実装していこうという状態にある。(と信じている) …

おーい磯野〜 callback使ってる関数をPromiseでラップしてasync/awaitで書こうぜ〜

JS

例1 const sleep = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } const something = async () => { await sleep(100) doSomething() } 例2 Geolocation.getCurrentPosition() - Web API インターフェイス | MDN から // 元メソッド…

Relay: viewerとかrootにあるのよく見るけどあれアンチパターンらしいよ

関連しそうな記述があるものをとりあえずまとめておく。 Possible optimization related to setVariables and Node · Issue #1370 · facebook/relay · GitHub Viewer ID and node interface implementation · Issue #1542 · facebook/relay · GitHub

Reactエレメント、コンポーネント、そしてインスタンス

React Components, Elements, and Instances - React Blog を読んだメモ エレメント(要素) エレメントは、コンポーネントインスタンスまたはDOMノードを記述する、普通のオブジェクト エレメントは、実際のインスタンスではない エレメントは、何を画面上…

React Nativeでのナビゲーションに便利なReact Navigation

2018-5-10追記: 先日v2も出ました。今目にしているブログ記事はだいぶ古いと思うので注意です。React Navigation (v2) · Routing and navigation for your React Native apps 2017/9/15追記: React Navigationは開発サイクルがしばらく停滞していたけれど、…

React NativeでiOSのランディングスクリーンに画像を設定する方法

という記事を書いた。 taiki-t.hatenablog.com だいたい図にした。constrainsの設定の時だけ、対象のオブジェクトからviewへcontrol + click してドラッグというのがわかりにくいかも。

React Native から S3に画像アップロード

という記事を雑にかいた。 taiki-t.hatenablog.com コードは参考になると良いと思う。

Presigned post to aws s3 from React Native

It took a longtime to figure out how to upload images to aws s3 using presigned post from React Native. The key part is to use FormData to construct a payload and post it with POST http method. PUTing FormData payload with pre-signed URL d…

Make commit messages great again.

github.com github.com github.com https://github.com/search?p=1&q=make+again&ref=searchresults&type=Commits&utf8=%E2%9C%93

React Nativeのリリース間隔は月次

facebook.github.io 2017/1 から。以前は2週間に一度だった。月末に新しいバージョンがリリースされるので、月の初めには新しいバージョンが利用可能になっている。また、リリース時にはすでにFacebookのプロダクションで2週間ほど運用した状態であるだろう…

Relay: containerのinitialVariablesに値を渡す

追記: 2017/08/31 これはRelay Classicの時に書いたものです。 Introduction 非同期処理で何かごにょごにょした後、Relayにその値を使ってサーバーにリクエストを投げてほしかった。 やり方 Relay.createContainerを関数でラップする 雑な実装例: componentD…

React Nativeの画像キャッシュ

追記 2017-11-27: 結局今はFastImageを使っている。GitHub - DylanVann/react-native-fast-image: FastImage, performant React Native image component. 最高。 プロローグ React Native使ってみた。Imageコンポーネント、毎回ネットワークから取得してる…

浅草寺の思い出

数年前に浅草寺に行った。時期は忘れた。おみくじを引くところに年季の入ったお姉さん方が群がり、何やら盛り上がっていた。一人一人何が出たかを読み上げている。わたし小吉、わたしは吉。そして恋愛運がなんたらだとか。よくある光景だ。特に気にもとめず…

Show an image on launch screen in React Native iOS app

My long attempts to show an image on launch screen (or splash screen) in iOS app with React Native have failed so far and here is a solution I finally found. The key is to make use of LaunchScreen.xib and not to use bunch of launch screen …

React Native で文字を truncate

プロローグ Railsって色々ヘルパーが用意されていて便利。ActionView::Helpers::TextHelper#truncateもその一つ。これは、文字列を切り詰めて末尾に...と付けてくれる。そういうヘルパーみたいなのがRNにもあったら便利だな?と思った。そしたら、あった。 n…