タグ

ブックマーク / ninjinkun.hatenablog.com (25)

  • 再考: アプリ開発と状態遷移の管理 - ninjinkun's diary

    自分が開発しているLaunchableのWebアプリがローンチされて1年半ほどになる。このWebアプリにはReduxのような状態管理ライブラリを入れないまま開発してきたのだが、今のところ困らずに開発できている。そういえば昔自分は状態管理について何か考えていたような…とブログを掘り起こしてみた。 ninjinkun.hatenablog.com このエントリは2016年にネイティブアプリを対象にして書かれているが、この後自分は2018年ごろにWebフロントエンドに軸足を移し、ネイティブアプリ開発から離れた。なのでこのエントリはWebフロントエンドエンジニア2022年に再考した話になる。 結論としては、当時自分が管理したかった状態のほとんどは現在ApolloClientのキャッシュによって解決されている。 繰り返しになるが、自分が開発しているLaunchableのWebフロントエンドには状態

    再考: アプリ開発と状態遷移の管理 - ninjinkun's diary
    peketamin
    peketamin 2022/09/20
  • 妻の姓に改姓した - ninjinkun's diary

    僕とは事情により結婚時に僕の姓を選んだのだが、が元の姓を名乗りたいという希望をずっと持っていたため、結婚6年目にして夫婦の姓をの姓に改めることになった。もちろん選択的夫婦別姓が実現されていれば僕の名前は変更する必要はないのだが、今のところは夫婦丸ごと名前を変えるしかない。 まず、日の法の下で婚姻した後に直接改姓する方法は見つからなかった(家庭裁判所の許可があれば可能らしいが、我々向けの用途ではないと思われる)。しかし一旦離婚して元の姓に戻り、再度結婚する際に側の姓を選べば実質的に可能らしい。というわけで、離婚して再婚した。 この手続きにあたっていくつかポイントがあったので、同じことを検討している人のために以下に記しておく。注意点として、我々は夫婦二人だけなので簡単な書類の手続きだけで終ったが、子供が居る場合は事情がだいぶ違ってくると思われる。また当然ながらこの記事は素人が書いてい

    妻の姓に改姓した - ninjinkun's diary
    peketamin
    peketamin 2022/03/21
  • Intel MacBook Proが遅くなってきたら内部清掃が効く - ninjinkun's diary

    仕事MacBook Pro (Intel 16-inch, 2019)を使っているのだが、この数ヶ月やたら遅くなってきて困っていた。試しにHotを入れて監視してみたところ、ビデオ会議中にサーマルスロットリングが働いてCPUのクロックが40%くらいまで下がっていたので、これは何か対策しないといけないと思い始めた。M1マシンに変えられればベストだが、購入した同僚が環境構築にハマりまくっていたのを見ているので、買い替えは躊躇する。このマシンも購入直後は問題なく使えていたはずなので、何かしらの変化があったのだろうと思い、内部の冷却に問題があることを疑い始めた。 早速どのご家庭にもある星形ドライバー1.2mmを引っ張り出し、裏蓋を外す。案の定埃が溜まっていたのでエアダスターで吹き飛ばしたところ、MBPは完全に復活した。今は快適な使い心地で、サーマルスロットリングも滅多に効かなくなった。 サーマルス

    Intel MacBook Proが遅くなってきたら内部清掃が効く - ninjinkun's diary
    peketamin
    peketamin 2022/01/21
  • なぜランニングを始めたのか、どうして続けているのか - ninjinkun's diary

    ランニングを始めて14年ほどになる。そんなに大したランナーではない。だいたい週に2、3回、5km〜10kmを走っている。フルマラソンには一度出たきり、タイムは5時間。全く走らない月もあったし、やたら走る月もあった。先日140. ninjinkunさんと財テクの話 | Ossan.fmに出て自分のランニングの話をしたのがきっかけで、どうして走っているのかをきちんと思い出して書き留めておきたくなった。 走り始めた経緯 自分は村上春樹が好きで、彼がランナーなので同じようにランニングを習慣にできたらいいなとぼんやり思っていた。 実際に走り始めたのは大学院に通っている時だった。当時自分は研究がうまくいっておらず(今から思うと真面目にコツコツやっていなかっただけ)、就職活動にばかり時間を割いていた。そんな中でも中間発表やら学会発表やらは容赦なくやってくるので、それなりにストレスがかかっている状況だった

    なぜランニングを始めたのか、どうして続けているのか - ninjinkun's diary
    peketamin
    peketamin 2021/06/21
  • mozaic bootcampに参加して気づいた、自分に欠けていたWeb技術の知識メモ - ninjinkun's diary

    mozaic bootcampというhttps://t.co/OfP8vuZTkfリスナーのための4日間通し勉強会に参加中。2日目の今日はkeep-aliveからのちょっとHTTP2、これからCookieの話— にんじんくん (@ninjinkun) 2019年4月29日 mozaic bootcampとは? mozaic.fmリスナー向けの勉強会。mozaic.fmはJxck氏が主催するPodcastで、Web標準やブラウザ、プロトコルなどWeb技術をターゲットにしており、自分も愛聴している。 今回行われたbootcampはゴールデンウィークの4日間を使い、「Webを正しく理解し、正しく使う」ことを目的として行われた。 参加者はざっくり言うとそこそこ経験のあるWebエンジニアが6名、主催のJxck氏、mozaic.fmでお馴染みの矢倉氏の計8名。参加にあたってはビデオ通話による選考もあっ

    mozaic bootcampに参加して気づいた、自分に欠けていたWeb技術の知識メモ - ninjinkun's diary
    peketamin
    peketamin 2019/05/26
  • iOSアプリ開発者がWebアプリ(PWA)をリリースするまでの流れ - ninjinkun's diary

    先日リリースした個人アプリBlogFeedbackを開発した動機と、開発の時系列、開発してみての感想(ネイティブ開発者から見たPWAとか)を書いていきます。リリースエントリにも書きましたが、このアプリはiOSネイティブアプリからWebアプリへの移植です。 TL;DR BlogFeedbackのケースではWebでもネイティブアプリとほぼ同等の体験を作ることができた ネイティブ歴が長くHTML/CSSに明るくなかったので、まずReact Native for WebでUIを組んでいって、自力でHTML/CSSが書けるようになってから脱React Native for Webした React / TypeScript / create-react-app / styled-components / storybook おすすめ ブログを書いている人はBlogFeedbackを使ってみて欲しい!

    iOSアプリ開発者がWebアプリ(PWA)をリリースするまでの流れ - ninjinkun's diary
    peketamin
    peketamin 2019/01/04
  • 就職 - ninjinkun's diary

    6月中旬に株式会社一休に入社した。一休レストランという飲店予約サービスを運営するレストラン事業部で、iOSアプリの開発を行っている(やっていることはコーディングとプロダクトマネジメント的な仕事を半々ずつくらい)。 一休はIT系としては比較的歴史が長い会社だが、 アプリの伸びしろの大きさ 経営陣の面白さ 自分で使って楽しいサービス という点で、総合的に見て面白い経験ができそうと感じて入社を決めた。事前に二週間お試しで働いてみて、一緒に働くメンバーとも楽しく仕事ができそうなのがわかっていた点も大きかった。 元々飲みに行ったり外することは好きだったのだが、一休では自社のサービスを自分で使ってご飯をべに行き、その体験をまた製品にフィードバックして改善できる。自分の生活をサービスに反映できるところが面白い。 他にも、社長(金融工学、CS、コンサル系のバックグラウンド)が検索のおすすめ順やリコメ

    就職 - ninjinkun's diary
    peketamin
    peketamin 2017/09/14
  • 結婚退職無職 - ninjinkun's diary

    昨年11月に結婚し、2月に勤めていたFablicを退職して京都で暮らしている。 結婚 3年前に上京して、京都に住んでいる彼女と遠距離恋愛をしていたのだが、昨年末に結婚した。現在は京都で一緒に暮らしている。毎晩一緒にお酒を飲めるのが楽しい。 退職 会社を辞めた理由としては、会社が昨年夏に買収され、自分の中でスタートアップ欲求が一段落付いたというのが一つ。もう一つは仕事が3月まで忙しいことがわかっていたので、せっかく結婚したのだし、しばらく一緒に居る時間を作ってサポートするのも良いんじゃないかと思い、このタイミングになった。 Fablicにはスタートアップの黎明期から拡大期に移るタイミングで入社し、フリルのiOSネイティブ移行、AndroidのMaterial Design対応、RIDEの開発など、様々な楽しいプロジェクトに関わらせて頂いた*1。また、自分のわがままを聞いてもらって、プロダ

    結婚退職無職 - ninjinkun's diary
    peketamin
    peketamin 2017/02/24
  • 「ボトムアップの見かけはとても重要」 - ninjinkun's diary

    この記事はProduct Manager Advent Calendar 2日目の記事です。 先日Japan Product Manger Conferenceに参加して、ポケモンGOの開発元であるNianticでPMをされている河合さんのセッションの中で印象的な言葉があったので書き留めておく(セッションの詳細はプロダクトマネージャーに必要な資質って何ですか? 元グーグルPM対談 | HRナビ by リクルートで読める)。 会場からの質問で、「開発者に仕事を任せる際に、上からやることをお願いするトップダウン型と、開発者が自発的にアイデアを出してくるボトムアップ型があると思うが、どちらがいいと思うか」(うろ覚えだけど、だいたいこんなニュアンスだったはず)という質問に対し、河合さんは一呼吸置いてから「ボトムアップの見かけはとても重要」と回答されていた。 これはPMの中では既に実現方法(おそら

    「ボトムアップの見かけはとても重要」 - ninjinkun's diary
    peketamin
    peketamin 2016/12/02
  • 【翻訳】プロダクトマネジメントトライアングル - ninjinkun's diary

    original: The Product Management Triangle (by Dan Schmidt) (translated by ninjinkun, reviewed by Kosuke) はじめに プロダクトマネジメントは多くのソフトウェア企業が重要だと認識している役割だ。それにもかかわらず、「プロダクトマネジメント」を正確な言葉で定義することは驚くほど難しい。自らを「プロダクトマネージャー」と呼ぶ人々は、企業ごとに全く違うことをやっている。彼らは異なるタイプのプロダクト、異なるタイプのチーム、異なる組織構造の中で働いている。このプロダクトマネジメントの立場の違いは、とても不毛だ。外の立場から見ていると、同じ肩書きの仕事を参照する際に、誤解を引き起こしているように見える。全てのプロダクトマネジメントの仕事を統合して、共通の話題を抽出しようとすると、価値を説明しようとし

    【翻訳】プロダクトマネジメントトライアングル - ninjinkun's diary
    peketamin
    peketamin 2016/08/23
  • アプリ開発と状態遷移の管理 - ninjinkun's diary

    このエントリーは読者としてスマートフォンアプリ開発者とWebフロントエンドエンジニアを想定して書いています。 CROSS2016に出るので、最近の自分の考えを整理しておく。 最近ReduxSwift実装であるReSwiftを使って開発している。使った感想なども最後の部分に書いたけれど、このエントリーの題はアプリの状態管理の話。 アプリは大きなシングルトン iOS、Android共にアプリを実装しようと思うと大抵シングルトンが必要になる。各ViewController内をまたがってデータを共有したいというユースケースが多いからだ。例えば ユーザーのログイン情報を集約するUserManager コンテンツへのいいね情報を集めるLikesManager ブックマーク情報を集めるBookmarkManager などなど。もちろんアプリの内容によってこれらの顔ぶれは違ってくると思うけれど、大抵U

    アプリ開発と状態遷移の管理 - ninjinkun's diary
  • 正しい製品を作る / 製品を正しく作る - ninjinkun's diary

    Inspired: 顧客の心を捉える製品の創り方を読み返していて、「第7章: プロダクトマネージャーを管理する」の一節 エンジニアリング部門というのは、基的に、正しい製品を作ることではなく、製品を正しく作ることに専念することになっているからだ。 というところが引っかかったので、思うところを書いてみる。ちなみに「第5章: プロダクトマネジメントとエンジニアリング(実装)」にも「正しい製品を作るのか、それとも、製品を正しく作るのか」というタイトルの章がある。 エンジニアは製品を正しく作る エンジニアは製品をリリースする責任があるので、不確定要素を減らして正しいスケジュールでリリースすることにモチベーションがある。このために、開発が進むほどにエンジニアは保守的になっていく。企画段階では和気藹々とブレストしてアイデアを出していても、最後のリリース前にはしぶい顔で実装を拒んだりする。 エンジニア

    正しい製品を作る / 製品を正しく作る - ninjinkun's diary
    peketamin
    peketamin 2015/12/17
    "コードを書く前の時間を大切にする"
  • Inspired: 顧客の心を捉える製品の創り方を読んだ - ninjinkun's diary

    プロダクトマネージャーの職能+ユーザー体験設計のです(と解釈しています)。 最近Rebuild: 98: Superhumans Wanted (Naoya Ito)やエンジニアからみた良いプロダクトマネージャとは? - サンフランシスコではたらくソフトウェアエンジニア - Higepon’s blogで話題のプロダクトマネージャーに興味があって、関連しそうなを読みたいと言っていたら、知人がこのを紹介してくれました。 Netscapeなどでプログラマーをしていたバックグラウンドを持ち、eBayなど複数の会社でプロダクトマネージャをしていた経験を持つ著者がプロダクトマネージャーの職能について語るで、以下のような内用が含まれています。 プロダクトマネージャーとは何か どうやって他の職種と連携して働くか どうやって製品を見つけ出すか どうやってユーザー体験を作っていくか 自分にとっては、

    Inspired: 顧客の心を捉える製品の創り方を読んだ - ninjinkun's diary
    peketamin
    peketamin 2015/08/03
  • 誰のためのデザイン?増補・改訂版を読んだ - ninjinkun's diary

    自分が最初に元の誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)(初版はPOETと呼ばれている*1 )を読んだのは十数年前でした。4月に出たこの改訂版を読み返してみて、改めて感銘を受けました(そして内容をほとんど忘れていたのに気づきました)。 内容としては、エモーショナル・デザイン―微笑を誘うモノたちのために 、複雑さと共に暮らす―デザインの挑戦など後の書籍で検討された内容が盛り込まれて、ノーマン著作の集大成になっています。 自分がこの改訂版で注目しているのは、「6章デザイン思考」の追加です。 6章デザイン思考 正しい問題を発見するのがデザインである として、そのための手段としてデザイン思考が解説されます。 具体的にフレームワークとして取り上げられている人間中心デザインプロセスを見てみると、 観察→アイデア創出→プロトタイピング→テスト→観察… というサイクルになって

    誰のためのデザイン?増補・改訂版を読んだ - ninjinkun's diary
    peketamin
    peketamin 2015/06/08
  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
    peketamin
    peketamin 2014/08/13
  • git-pr-releaseのすすめ - ninjinkun's diary

    Github (含むEnterprise) で開発をしているなら、Github Kaigiでも紹介されていた git-pr-release が便利です。自分の会社ではアプリのリリース前にQAを実施しているのですが、QAを始める前にどの機能がリリースされるのかをリストアップし、それをGoogleスプレッドシートに入力する作業が繁雑でした。 git-pr-release を使うと、これをリリースPull Requestに集約して自動化することができます。リリースPull Requestとは以下のようなものです (スクショはこのツールのPR用に作ったダミー)。 具体的なリリースまでの作業手順は以下のようになります。 開発ブランチにリリースする機能のPull Requestをmergeしていく git-pr-release を実行 merge済みのPull Requestの情報を集めてチェックリス

    git-pr-releaseのすすめ - ninjinkun's diary
    peketamin
    peketamin 2014/06/04
  • iOSアプリケーション開発のコードレビューで気をつけていること - ninjinkun's diary

    日常的なコードレビューで気をつけていることリストです。GitHub会議(仮)で発表しようと思っていたのですが、日程の都合で参加できないので、書きためておいたメモを公開します。またどこかで発表するかもしれません。 AutoLayoutにできないか AutoLayout化した方がすっきりしそうならAutoLayout化する AutoLayout化できそうなものでやっていないものは、なぜコードで実装したか質問する 例えばUITableViewCell ちゃんと理由があれば別に良い。コードの方が良いことも多い UIAppearanceで解決できないか 各クラスの中にスタイルの指定が入るより、UIAppearanceでスタイル指定を分離して別クラスに書く方がデザイナーも弄りやすくて良い 3.5インチ端末が考慮されているか レイアウトが決め打ちだとここで問題が出ることが多い 着信ステータスバーが考慮さ

    iOSアプリケーション開発のコードレビューで気をつけていること - ninjinkun's diary
    peketamin
    peketamin 2014/04/24
  • はてなを退職しました - ninjinkun's diary

    昨年末に株式会社はてな退職しました。2008年の京都移転直後のインターンに参加し、2009年に新卒入社したので、5年くらいはてなに関わっていたことになります。 このエントリでは、自分がはてなでやったことと、エンジニアとしてのロールモデルを持つことができたこと、コミュニティ活動ついて、そして今後について書きます。 はてなでやったこと 最近ではスマートフォン系の仕事が多かったのですが、入社当初は運用を担当していました。たくさんのサービスを担当しているチームで、ここで様々なコードに触れた経験が今振り返ってみるとすごく良かったと思います。とにかくコードをたくさん読みました。 同期入社には既に実績がある人が何人もいて焦る一方、自分はテストを書いているつもりがDBのデータを消していたり、社内のメールを止めたりとひどいミスを連発していて、今思い出しても冷や汗が出ます。 その後 はてなキーワードフィーチ

    はてなを退職しました - ninjinkun's diary
    peketamin
    peketamin 2014/01/06
  • Facebook iOSアプリのようにスクロール時にフルスクリーン表示を行うiOSライブラリを作りました - ninjinkun's diary

    明けましておめでとうございます。神トラ2クリアしました。 Facebook iOS Appのように、一覧をスクロールした際にUINavigationBarやUIToolbarを隠してフルスクリーン表示をするためのライブラリを作りました。 https://github.com/ninjinkun/NJKScrollFullScreen スクロールをフックしてフルスクリーン化をdelegateで通知する部分と、フルスクリーン時の動きを定義する部分を分離した設計になっています。 同じようにフルスクリーン化を行うYIFullScreenScrollというライブラリがあったのですが、UINavigationBarの移動などフルスクリーンの動きの部分が一体になっており、Facebook appぽい挙動にカスタマイズし辛かったので、動きを分離した設計のライブラリを別に作ることにしました。all-in-o

    Facebook iOSアプリのようにスクロール時にフルスクリーン表示を行うiOSライブラリを作りました - ninjinkun's diary
    peketamin
    peketamin 2014/01/04
  • UIWebViewにプログレスバーを出すためのモジュールを作りました - ninjinkun's diary

    ninjinkun/NJKWebViewProgress · GitHub UIWebViewにはロードのプログレスを取れるインターフェイスがありません。恐らく内蔵ブラウザを抱えるアプリを作る開発者はみんな困っているはず。少なくとも自分はずっと困っています。いつか実装されるかなと気長に待っていたのですが、いい加減しびれを切らしたので作りました。iOS 7で追加されて速効ゴミになる可能性もありますが…。 なお、このモジュールはプログレスを返すインターフェイスだけを提供するので、画面に表示するにはUIProgressViewなりを使う必要があります。 プログレスバーはユーザーに進捗をほどよくフィードバックするためのものですが、この辺りの機微が結構難しかったです。*1 最終的にはWebKitの実装を参考にパラメータを決定しました。ロードしたbyte数が取れるWebKitとは違い、ロードが完了した

    UIWebViewにプログレスバーを出すためのモジュールを作りました - ninjinkun's diary
    peketamin
    peketamin 2013/04/22