実装理解のためのリファクタリングで品質を上げる

はじめに 業務でいわゆるレガシーなコードベースに対して開発を行ってきました。 ユニットテストがなかったり、設計思想が不明だったり、ツギハギだったり... そんなコードをよく理解しないまま修正し、デグレや新たなバグを埋め込んでしまう...ということが…

Android 12 からの web intent

Android 12 から web intent の解決方法が変更され、ブラウザで開くというのがデフォルトの動作になりました。 targetSdkVersion に関わらず影響のある変更です。 developer.android.com Web Intent web intent は以下の条件を満たす intent です。 アクショ…

内部テストを使った Android アプリ配信

Google Play Store の内部テストトラックを使いながら、Android アプリをデプロイしてみます ‍♀️ テスト配信 Google Play Store を用いた配信はいくつか方法があり、製品版に加えて、 3つのテストトラックと内部アプリ共有があります developers-jp.googlebl…

bitrise がいつの間にか .gradle をキャッシュしてた

以前、 iOS アプリの bitrise workflow を cache を用いて改善した takorras.hatenablog.com Android アプリも CI サービスに bitrise を使っているので、同様の対応を行ってみる bitrise cache を使う 以前の記事の通り、 cache-pull step と cache-push st…

bitrise のビルドをちょっとだけ短縮

iOS アプリの bitrise ビルドが10分を超える事が多いので、まずは全体を見て手早く改善できるところを探してみた 最も時間がかかるのは xcode-test step だけど、これはアプリ側で色々見直さないといけなさそうで一旦スキップ... 次に目についたのが、 bundl…

presenting/presented VC と dismiss

モーダル遷移なら present/dismiss ・プッシュ遷移なら push/pop を使うけど、 present の関係と、 dismiss を呼んだ時の動きについてちょっとメモ ドキュメントに書いてある通りだけど.... https://developer.apple.com/documentation/uikit/uiviewcontroll…

Protocol Extension で UICollectionView をちょっと便利に

UICollectionView を使う際、以下のようにセルを再利用していました // CustomCell.swift class CustomCell: UICollectionViewCell { static func nib() -> UINib { return UINib(nibName: String(describing: self), bundle: nil) } static func reuseIdent…

SRP - 単一責任の原則

モジュールはたった1つのアクターに対して責務を負うべき モジュール ... 複数の関数やデータをまとめた、凝集性のあるもの ソースファイルやクラス、DBテーブルなど? アクター ....... システムの変更を望むものたち 「商品を探すユーザ」や、「売上を集計…

読書録:クリーンアーキテクチャ

コードを書く時、課題に感じることが幾つかある ぱっと出てくることを挙げると... 後から分かりやすい・変更しやすいコードにしたい 自信あるコードにしたい どこから書いてくか迷う 先の道筋を考えてコードを書こうとする そんなことできるのか? 道筋・ど…

Visual Studio Code でも TeX がしたい

この記事はCPS Lab Advent Calenderの16日目の記事です。めちゃくちゃ遅れました...。 15日目の記事は7セグもどきで電子サイコロ - Qiitaです。17日目の記事は個人開発者ならIDは統一しておくと良い - まっきーの研鑽記です。 はじめに 皆さん論文を書く季節…

ノリと勢いで旅行に行ってみる

この記事はミクシィ19新卒 Advent Calendar 2018の15日目の記事です。14日目の記事は 15日目の記事は ネタがなくて技術記事じゃないです。余裕ができたら記事埋めます..! 先日奄美大島に行ってきたので、旅行の話をしようと思います。 はなすこと タイトルの…

JavaScript だけで BLE に入門する

この記事はCPS Lab Advent Calenderの2日目の記事です。1日目の記事はM5Stackをメトロノームにするです。3日目の記事は @kotako_rs です。 書くネタが全くなかったので、研究で気になっていたBLEについて調べて実装してみました! やってみたこと Chromeから…

東京アメッシュを使って研究室を雨から守る

東京の街を雨から守るサービス 東京都下水道局の東京アメッシュというサービスを知っているでしょうか? 最新のレーダーシステム?によって、現在の東京周辺の降雨情報をみることができます 東京アメッシュ・東京アメッシュのご紹介 研究室のslackbot (hubot…

git challengeに参加した

はじめに 先日git challengeに参加してきました! git challenge第9回大会がはじまりました。今回のLTから2018年新卒入社エンジニアによる事例をご紹介。チュートリアルも終わって、只今ランチタイム中です。 #mixi_git pic.twitter.com/9X66CpE8qq— ミクシ…

FlutterでTwitter認証をつかう

Flutterをやり始めた アプリにTwitterでの認証を組み込みたかったので、pubで検索してみたところ、flutter_twitter_login とかFirebase Authあたりかなーという感じだった 当初はFirebase Authで認証しようとしていたが、これは他サービスの認証情報を使って…

AndroidでMVIアーキテクチャを使う

droidKaigi2018でMVIという単語を知り、実際に使ってみました。まだまだ勉強中なので、適宜ご指摘お願いします…。 MVIアーキテクチャとは Model - View - Intent の3つを中心として、データを単一方向のストリームとして扱います。IntentはAndroidのIntentで…

エンジニアのためのポモドーロタイマー

つくったもの Sandglass GitHubと連携する事で、作業履歴を確認する事ができるエンジニア向けポモドーロタイマーです。 作業の集中が切れたり、かけた時間に対してコードが書けていない事があり、作業効率を上げたいと思った所で先輩から教えていただいたの…

雰囲気でTwitterクライアントを作った

この記事はCPS Lab Advent Calenderの21日目の記事です。20日目の記事はものづくりの一年〜2017年を振り返ってみて〜です。22日目の記事はコーディングで編曲をした話です。 たこです。最近はラボで怪しい笛を吹いています。 2018-12-08 追記 この記事は古い…

Ender2戦線

この記事はCPS Lab Advent Calenderの7日目の記事です。6日目は デルタ型3DプリンタBIQU Magicianの話 8日目は Thinkpad x230でhackintoshを作ろうとしてこけた話 2日続けて3Dプリンタネタが続いてしまいました。 研究室に届いた3Dプリンター、Ender2の組み…