koogawa blog

iOS、Android、foursquareに関する話題

Infuraを利用してTruffleからRinkebyに接続してみる

マネージドイーサリアムノードのサービスプロバイダであるInfuraを利用して、TruffleからRinkebyに接続する設定をメモする。

Infuraサインアップ

まずは https://infura.io/register にアクセスして、アカウントを作成する。最初にプロジェクトを作成するが、名前は何でも良い。

「MANAGE KEY」を押すとAPI KEYが表示されるのでそれをメモする。

truffle-config.js

Truffleの設定ファイルである truffle-config.js を開き、networks: {} の中にRinkebyセクションを追加する。

    rinkeby: {
      provider: () => {
        return new HDWalletProvider(
          mnemonic,
          `https://rinkeby.infura.io/v3/${infuraProjectId}`
        );
      },
      network_id: "*"
    },

また、上の方にある

require('dotenv').config();
const mnemonic = process.env["MNEMONIC"];
const infuraProjectId = process.env["INFURA_PROJECT_ID"];

const HDWalletProvider = require('@truffle/hdwallet-provider');

の行もコメントアウトする。

見て分かる通り dotenvHDWalletProvider を使うのでそれぞれインストールする。

npm install dotenv
npm install @truffle/hdwallet-provider

HDWalletProvider はデプロイプロセスで利用できるプロバイダを作成するためのライブラリである。プロバイダを作成するためには、InfuraのAPI KEYおよびシークレットリカバリーフレーズ(ニーモニックとも呼ばれる)にアクセスする必要がある。そこで、環境変数を使ってアクセスできるようにしておく。

!!注意:シークレットリカバリーフレーズは絶対に公開しないように!!

$ export MNEMONIC="<あなたのシークレットリカバリーフレーズ>”
$ export INFURA_PROJECT_ID="<INFURAのAPIKEY>”

ここまで設定すれば、truffle migrate --network rinkeby などのコマンドを用いてRinkebyに接続できるようになる。

#WWDC22 What's new in MapKit メモ

developer.apple.com

所感

  • pointOfInterestFilter、 showsBuildings、 showsTrafficなどdeprecated になるMKMapViewのプロパティがあるので、MapKit使っている開発者は見ておくべき
  • アップルさんのデモもUIKitで作られていたので、地図アプリはまだフルSwiftUIで作るのはしんどいのかもしれない
  • サンプルコードがとてもよくできているのでいちどビルドしてみるのをおすすめします

ツイートまとめ

#WWDC22 Hello Swift Charts メモ

developer.apple.com

所感

  • SwiftUIとの相性が良く、直感的に記述できそう
  • Apple標準ということでダークモード、voiceOver、Dynamic Type、ローカライズマルチプラットフォーム対応が楽そう
  • そろそろUIKitを選ぶ理由がなくなってきた気がする

ツイートまとめ

#WWDC22 Meet Apple Maps Server APIs メモ

developer.apple.com

所感

  • ジオコーディングは何年も前から使えたんだけど、これをServer APIで開放したイメージかな
  • 1日に25,000回まで利用可能。アップルさんがんばった(昔は1時間に2回しか使えなかった)
  • 25,000 は少ない!という声もあるけど、「超える場合は連絡してね」とのことなので、連絡してみたら良いのでは

ツイートまとめ

#WWDC22 Get to know Developer Mode メモ

developer.apple.com


所感

  • なぜDeveloper Modeが必要?というところをもうちょっと詳しく調べてみたい
  • とはいえ、不要な機能を開放しておく必要はないのは確かだよね
  • Distributionされたビルドでは不要とのことだけど、Adhocビルドはどうなんだろ?

ツイートまとめ

2021年を振り返る

今年も無事に仕事を納められそうです。

f:id:koogawa:20210831120036j:plain
青島
というわけで、2021年を振り返ってみたいと思います。

仕事

SwiftUI/Combine

昨年まではフロントエンド/バックエンドが中心でしたが、今年はまたiOSアプリエンジニアに戻り、SwiftUI + Combine をメインでやってました。フルSwiftUIで開発し、3月にリリースした作業配信アプリがこちらになります。

今回は Storyboard を一箇所も使わなかったわけですが、SwiftUI は iOS標準に従ったデザインであればとにかく高速に開発できてしまう印象でした。特に設定画面のようなリスト構造の画面では、従来のUITableViewを意識しなくて良いので非常に楽です。さらにコンフリクトも起こりにくいです。

良い椅子を買った

昨年までは高校生のときにかった3,980円のOAチェアで頑張っていましたが、思い切ってエルゴヒューマン椅子を購入しました。

頭を支えてくれるのが最高で、疲れてきたらあぐらをかいて座れるのもポイントです。ただ、とにかく重いので、引っ越しの際は大変です。

賞を頂いた

昨年に引き続き、会社で賞を頂きました🎉

評価してもらえるのは本当にありがたいです。これからもやっていきます💪

プライベート

技術相談

今年は主に技術相談という形で副業をやっていました。最近は CodeBoy というサイトでお仕事の依頼を募集しておりますので、興味があればそちらからご連絡ください。

AtCoder

ついに茶コーダーになることができました🎉

茶色がどれくらいのレベルかというと…

茶色になる条件は、Ratingが400以上になることです。茶色で保証できる実力ですが、正直、AtCoder内ではあまり高いレベルではありません。ただ、ここにたどり着く前に辞めてしまう人が多いので、十分にやる気がある人であるとは言えるでしょう。

なお、他社転職サイトと比較すると、このレーティングでも上位1~2%の最高ランクに到達出来る人が数割いるため、一般的には十分高いレベルであると言えます。 AtCoder社長chokudaiさんの記事より引用 https://chokudai.hatenablog.com/entry/2019/02/11/155904

というわけで、あまり高いレベルではないけど上位50%には入るぐらい、とのことです。しかし、高校時代から数学が苦手だった自分にとっては十分な結果であります。

今後ですが、「AtCoderで茶色になる」というのが当初の目標だったので、競技プログラミングの優先度はちょっと下げていきたいと思っています。例えば、F1開催と重なった日も今まではAtCoderを優先していましたが、今後は普通にF1を観ると思います。(競プロをやめるわけじゃないよ!)

ミニ四駆

夏ぐらいから突然ミニ四駆にハマり、親子で参加した秋の大会では表彰台に上がることができました🎉

私はハマったらとことんのめりこむタイプなので、来年もいろんな大会に参加したいと思います。

来年

リモートワークでも外に出るようにしている

今さら感の強い内容だが、たまにはリモートワークネタでも。

私はリモートワークを始めた当初から、週の半分以上は自宅以外の業務スペースで作業をしている。思考の整理も兼ねて、その理由をまとめてみたいと思う。

光を浴びたい

私は昔から冬があまり好きではないのだが、その理由が少し分かった気がする。

国立精神・神経医療研究センター(東京)睡眠・覚醒障害研究部の栗山健一部長は「日光を浴びないとセロトニンの分泌が減り、気分や意欲が落ち込んでしまう」と指摘する。

セロトニンは脳の神経伝達物質で、心の安定や頭の働きを促す。部屋にこもったり、日照時間が短かったりすると分泌が進まず、眠気も強まる。不足を補うため炭水化物を欲し、食生活も乱れる。もともと抱えるストレスと重なると、仕事や家庭生活などに与えるダメージは大きくなる。

冬はなぜか気持ちが落ち込む…という感覚はあったが、実際、光を浴びないとセロトニンの分泌が減り、意欲の低下につながることがわかった。たしかに朝、日光を浴びながら自転車でコワーキングスペースに向かうだけで気分の上がり方がぜんぜん違う。

ちなみに、冬だと退勤する頃にはすでに暗くなっているので、ランチを食べたあといったん帰宅して続きをやる、みたいなことも時々やっている。

緊張感のある環境に身を置きたい

自宅は落ち着くが、自由すぎて気付いたら動画をみちゃってたりする。コワーキングスペースだと他の利用者がいるので適度な緊張感を保てる。あと、人から見られてる感があるので、姿勢とか表情も自然とシュッとする気がする。

話のネタになる

我が家では夕食時に今日あったことをあれこれ喋るのが習慣となっているが、一日中自宅で作業した日は驚くほど話題がない😅 逆に、外で作業した日は「あそこに新しい店がオープンしていた」「さっき虹が出ていた」みたいな話題が自然と生まれるのである。

コワーキングスペースのほうが作業環境が良い

これは外に出るモチベーションを上げるためのコツでもあるのだが、コワーキングスペースで使うモニターやキーボード、椅子などを自宅より良いものにすることで、「外で作業したほうが効率が良いし、出かけるかー」といったきっかけになったりする。

実際、いま自宅で使っている Apple Thunderbolt Display よりコワーキングスペースに置かせていただいているLGの4Kモニターのほうが大きかったりする。

運動のため

3kmほど離れたコワーキングスペースに自転車で通うだけで割と良い運動になる他、その間にイデアが閃く・思考が整理されるといった副次的な効果もある。実際、家に着くまでに課題やバグが頭の中で解決したこともあった。

体型維持のため

大げさかもしれないが、ずっと自宅にいて、一週間ぶりにジーンズを履こうとしたら体が太くなっていて、腹を引っ込めないと入らない!ということも実際にあった。定期的にいつもの服を着て外に出る、ということは割と大事なのである。

美味いものを食べたい

コロナの状況にもよるが、コワーキング周辺のお店でぼっちランチを決めるのが小さな楽しみだったりする。そして、帰りにいつもの模型屋さんにフラっと寄ってミニ四駆のパーツを買ったりする。

こういった「楽しみ」をつくることは意外と大事だったりする。