OTOBANK Engineering Blog

オトバンクはコンテンツが大好きなエンジニアを募集しています!

エンジニアじゃなくたって現在時刻を自由自在に操ってテストがしたいよ〜〜 with Symfony

こちらは Symfony Advent Calendar 2021 の11日目の記事です。 昨日は @ttskch さんの [Symfony] Securityアノテーションを使って複雑な権限チェックを行う | blog.ttskch でした。 どーも @kalibora です。今回は 「エンジニアじゃなくたって現在時刻を自由…

転ばぬ先のstrace

こんにちは。@kalibora です。 私は職業プログラマー歴20年弱になるのですが、 数年に一度くらいの割合で strace のお世話になることがあります。 今日はそんな話をしたいと思います。 といっても、strace の挙動についての深い話は一切ないので、 対象者と…

uniqueByから始める低計算量アルゴリズムのすゝめ

こんにちは、アプリ開発担当のエモトです。先日、弊社アプリが大型アップデートされました。我々アプリチーム含め社内メンバーと取り組んで、ダークモードなど新しい機能を追加してリリースすることができました。是非、新しくなったアプリをご利用ください…

図でよくわかる Doctrine ORM の基本のキ

こんにちは @kalibora です。 図でよくわかる Doctrine ORM の基本のキ というタイトルで社内LTをしたので、せっかくなので資料を公開しておきます。 EntityManager でよく使うメソッドである persist, flush, clear の挙動を簡単に図解しています。 内容は…

レイヤー間の依存関係の静的解析 - PHP deptrac ~ 実践編

前回の記事 レイヤー間の依存関係の静的解析 - PHP deptrac ~ 導入編 からの続きです。 「ユニットテストとは事情が違うし、そうそう違反は起きないよ」と思った方がいらっしゃるかも知れません。いえ、レイヤーの依存関係違反は割と発生します。 起こりうる…

レイヤー間の依存関係の静的解析 - PHP deptrac ~ 導入編

はじめに 今日のPHPでのウェブアプリケーションでは、MVCなどのレイヤー分割を気を付けて構造の開発を行われているかと思います。はたして気を付けてるだけでよいのでしょうか? ・・・ということで、"アーキテクチャテスト" とも称されるレイヤーへの静的解…

React Native の ScrollView でスクロール時に child を上部に貼り付けたい

こんにちは、アプリ開発担当のエモトです。本業は稲作で、合間に横スクロールのダンジョン攻略や、アプリ開発を行っています。 React Native で画面を作る時、ScrollView を利用する方は多いと思います。その画面でスクロールするとき、ある child だけ上部…

audiobook.jp作品のサンプルコンテンツを埋め込める様になりました

こんにちは、普段サーバーサイドやWeb開発をやりつつフロントエンド入門中の岩Dです。 コロナも怖いですが、そろそろインフルエンザも怖くなってくる時期ですね。皆様インフルエンザの予防接種はお済みですか?私は午前に予防接種を受けてきて左腕が重い今日…

FlatList の onViewableItemsChanged で起きたエラーを解決する

こんにちは、アプリ開発担当のエモトです。遊んでいたソシャゲが12月にサービス終了ということで、溜まった石やアイテムを使って、後先考えずに遊んでいます。アニメ作品のゲーム化なのでいつまで続くのか不安でしたが、2年弱も続いたので満足しております。…

iOSDC Japan 2020 に参加しました #iosdc

iOS

こんにちは、アプリ開発担当のエモトです。先日、突然の iOS 14 リリース発表で世界中の iOS アプリ開発エンジニアが混乱しました。私も漏れなく混乱して気を失い、キーボードを REALFORCE 91UBK から REALFORCE TKL for Mac (R2TL-JPVM-WH) に買い換えてい…

必要な PHP拡張/パッケージをCIで検出し、インストール漏れエラーを防ぐ。 GitHub Actions と composer-require-checker で

composer での require と require-dev キー PHPで広く使われている依存性マネージャの composer には、昨今の他の言語で用いられているツール同様に、依存性を設定するキーとして require と require-dev が存在します。 このキー欄にはそれぞれプロジェク…

FlatListとセーフエリアの表示を考える

こんにちは、アプリ開発担当のエモトです。田舎からリモートワークで働いているのですが、どうも家のインターネット回線が不安定。今年前半の緊急事態宣言でリモートワークが広まった時期から明白に不安定になりだし、騙し騙し使ってましたが、流石に支障が…

APIが不必要にセンシティブなデータを返していないことをCIで担保する

暑い日が続きますね。こんにちは @kalibora です。 よその会社であったとしても、セキュリティ関連の事故を見聞きするたびにプログラマーとしては胃が痛くなるのではないでしょうか。 はたして自分のところは大丈夫だろうかと。完璧なんてありえないし、どこ…

わたしのReact Hooksの使い方

こんにちは、アプリ開発担当のエモトです。Pixel 4a が発表されましたね。私のメイン機は iOS なのですが、Android も多少持っているので興味があります。パンチホール式を採用した広々としたディスプレイに惹かれるモノがありますが、「今は時期が悪い、5G…

React NativeアプリでSpotlightを使った検索を実装する

こんにちは、アプリ開発担当のエモトです。みなさま給付金は受給されましたか?僕は、あ、あれ、何かノートパソコンが生えてる。不思議なこともあるもんだな。ちなみ、前回の給付金(リーマンショックを受けて、2009年に施行)では、Realforceを購入して、今…

自宅の狭い作業環境を拡張してみた

おひさしぶりです。サーバエンジニアのyukimuraです! 全国で緊急事態宣言が解除されましたね。 まだまだ油断せずに節度ある生活を心がけていこうと思います。 さて、今回の自粛期間中フルリモートとなり会社からリモートワーク一時金をいただきましたので、…

React Nativeアプリで Sign in with Apple を実装する

こんにちは、アプリ開発担当のエモトです。待望の映画 SHIROBAKO が地方映画館でも上映される矢先、昨今の事情で休館になり、悲しみに暮れております。しかしながら、首都圏中心だったIT技術系の勉強会がリモート開催されるようになったりと、新しい世界を楽…

PHPStan、phpstan-doctrine を 0.12 へと アップデートした

今週は仕事のメインリポジトリのphpstanならびにphpstan-doctrineをやっと^0.12に上げたので気が強い— sasezaki (@sasezaki) March 27, 2020 はじめに 弊社のサーバーサイド でのメインプロジェクトでは、過去のブログエントリにもあるように、PHP ならびにO…

React NativeアプリでSiri Media Intentを実装した話

初めまして、アプリ開発を担当している エモト と申します。手元にSHIROBAKOのムビチケがあるのに、昨今の事情で映画館に行けず、モヤモヤしております。昨年秋に入社して、いつかはブログを書こうと思って気付いたら今日となりました。よろしくお願いします…

Sign In with Apple サーバ実装時に悩んだポイント〜名前・emailが取得できない編〜

こんにちは。 コロナウイルス対策で引きこもり属性が高まっているサーバエンジニアyukimuraです。 突然ですが、アプリのソーシャルログインといえば何が思い浮かびますか? Facebook? Google? Apple? ・ ・ ・ あれ、Appleのサインインボタンってあんまり…

どや会!

はじめまして。9月にオトバンクに入社しました、エンジニアのyukimuraです。 入社してもうすぐで半年・・時間の流れが本当に早いですね〜。 さて、オトバンクではリモートワークが推奨されており、エンジニアもリモートワークで働いている方が多いです。 普…

GitHub Actionsで業務を効率化する ~OSSライセンス情報の自動反映 編~

どうも、けいまです。 最近は日中の暑さも和らぎ、夜は窓を開けていると涼しくていい気候になってきましたね。 さて、今回はスマホアプリの開発チームの業務改善をした話をします。 重要だけど毎回気にするほどでもないので忘れがちなタスク 例えばOSSライセ…

はじめてのミューテーション解析 / Mutation testing

こんにちは! 今月から 2 名のエンジニアの仲間が増え、歓迎のために東京に来ている @riaf です。暑くて死にそう! 本日もまた社内勉強会のレポートでございます。 いま PHP 界隈では、mutation testing が熱い! というタイトルで id:sasezaki 先生がお話し…

【社内勉強会】イケてるコードを書きたいんじゃぁ~~~ _(:3」∠)_

こんにちは、エンジニアのs4kr4です。 今回の勉強会は、keima氏による 「イケてるコードを書きたいんじゃぁ~~~ (:3」∠)」 です。 資料はこちら。 ※ 内容はあくまでも登壇者の一意見です イケてるコード みなさんは「楽しくプログラミング」していますか?…

京アニは人生【社内勉強会】

みなさんこんにちは。ねっしーです。 関東は先週梅雨明けし、すっかり暑い日が続くようになりました。 家と会社を行き来するだけで汗だくになり、HPが削られていきます...。 この夏はさらにリモートの日が増えそうだなぁと思いました。 夏といえば、夏アニメ…

Live Coding の話を教えてもらいました

みなさんお久しぶりです! @riaf です。 暑い日が続きますね!水分補給しっかりしてますか? このクソ暑い日々に満員電車で通勤するの大変ですよね。弊社は満員電車禁止なので、空いてる涼しい電車で通勤オッケーで最高です。っていうか、僕は北海道に住んで…

オトバンク社内勉強会 - プログラミング教育知ってる?

このブログにて既に数回記事にしている開発チームメンバーによる 社内LT、 今回は、タイトル『プログラミング教育知ってる?』で 2020年から始まるとされる小学校プログラミング教育の話について紹介します。 発表は、弊社CTO 佐藤によるものです。2019年6月…

勉強会紹介: Mastodonについて

こんにちは。スマホ向けアプリを担当している けいま と申します。以後お見知りおきを。 オトバンクでは毎週、弊社エンジニア全員が集まる場で社内勉強会をしております。 engineering.otobank.co.jp 今回は同じくアプリエンジニアの s4kr4 さんが発表した "…

BEAR.Sunday を GAE flex 環境で使う際の tips

BEAR.Sunday on GAE のノウハウがたまっていくけど、きっと誰も欲してないよね。— kalibora (@kalibora) 2019年7月3日 このようなことを偉そうにもつぶやいてしまったので、この記事を書く運びとなりました。 改めましてこんばんわ @kalibora です。 弊社で…

Guzzleにキャッシュやリトライは任せちゃおう

PHP

曇天が続きますね。 @kalibora です。 今日は小ネタを書かせていただきます。 PHPer のみなさんは HTTP クライアントは Guzzle を使うことが多いと思います。 昔は curl をそのまま使うことも多かったと思いますが、今はあまりそういう状況も少なくなってき…