もちゅろぐ

iOSやSwift、モバイル設計だったりRailsについてまとめていく

WebフロントエンドエンジニアとiOSエンジニアとAndroidエンジニアが最低限知るべきマルチプラットフォーム対応サービスの仕様とデザインの共通と独立の話

背景 自分はUI/UXデザイナーでもグラフィックデザイナーでもないBtoC向けサービス作るのが好きなエンジニアです。 今回会社でクライアントエンジニア向けにプラットフォーム横断するサービスのおいてプラットフォーム横断すべき情報とすべきではない情報につ…

画面外へスライドアニメすると表示が消えてからスライドするのはSafeAreaが原因

問題の症状 下のアニメのように外へスライドしようとすると最初に白くなってから上へスライドします。 画面外へスライドアニメで表示が消える コードは下記のように至ってシンプル。 UIView.animate(withDuration: 0.3, animations: { [weak self] in guard …

cronの書き方

crond だけでなく何かと色んな所で出てくる cron 記法 毎回検索しても欲しい記法見つけるのに時間かかるのでほぼ自分用に書いた。 フォーマット 分 時 日 月 曜日 コマンド 日時の範囲 時間 値範囲 分 0~59 時 0~23 日 1~31 月 1~12 or jan~dec 曜日 0~7 or …

古いPCにLinux(CentOS 7)をUSBメモリでインストールしてプリンターサーバーとして再生させる

こないだ断捨離してたら独身の頃買ったネットブックを発見。 長らく使っておらず今後も予定なかったので、破棄も考えたのですが比較的使っているプリントサーバとして勉強がてら復活させました。 色々ネットで調べながら構築したのですが、ネットでは見つか…

CircleCIで別途SSHキーを追加して使う方法

最近CircleCIを使って定期実行的なことをするために弄り始めました。 CircleCI が自動で生成&登録してる鍵は read-only CircleCIを使ってサーバーにデプロイしたい場合やGitHubへpushしたい場合は、 自動生成&登録されるSSH Keyでは権限が足りずエラーにな…

CircleCIでSSH Key登録が失敗する場合の原因特定方法と自分が見つけた解決方法

最近CircleCIを使って定期実行的なことをするために弄り始めました。 CircleCIの簡単な説明 CircleCIはGitHubのレポジトリベースで管理されており、セットアップすると自動でread-onlyの鍵がGitHubの対象レポジトリに登録されてます。 これによりCircleCIがG…

クラス名にSimpleやEasyがついててもクラス内コードが単純なわけではない

クラス名は目的やできることや塊を表現する。 そのためクラス名にSimpleやEasyがついてる場合 提供してる機能自体がシンプル 提供してる機能の使い方がシンプル 保持してるデータ構造の名前が「シンプル」とネーミングされている と少なくとも3つの解釈がで…

RailsのController内におけるエラーハンドリングのベストプラクティスについて調べてみた

概要 各APIControllerでエラー検知とエラーレスポンスを書くのDRY違反してる エラーレスポンスは構造が統一できていないとクライアント側が死んでしまう Applicationで一律例外検知してエラー内容をハンドリングしたほうが楽 C#のASP.NET MVC5ではController…

XcodeのPlaygroundが動かないとか遅いとか不安定な場合は新しく作り直すといい

過去に作ったPlaygroundのままだと動作が変だよって話。 自分もだいぶ前に作ったPlaygroundをちょっとしたコード動かしたい時にXcodeプロジェクトが立ち上がった状態 Playground を立ち上げてコード書いてた。 だけど以前から Playgroundがずっと何かを処理…

Optional<String>をExtension化したのにエラーになって役に立たない

事の発端 nil結合演算子はコンパイルが重くなる要因だし、見た目としてもよくないから解決したいと考えてた。 そこで Optional を拡張してそのコードを次のようにカプセル化した。 これなら nil結合演算子も使わずにコード量も抑えられる。 extension Option…

App Store へのアップロードでThere was an error sending data to the iTunes Store. Scheduling restart shortly が出たとき自分はこれで解決した

iOS

いつもと同じ手順でXcodeのOrganizerでApp Storeへアップロードしたら次のエラーが出ました。 There was an error sending data to the iTunes Store. Scheduling restart shortly... 考えてみた所いくつか前回と異なる点がありました。 いつもと違うところ …

PlantUML Viewerで一瞬しか表示されないならJava8で治った

brew cask で最新版 java インストールしてダメだったけど、java8 でインストールしたら症状が治りました。 java9でもダメだった記事を見かけたので、多分java以外の所(graphviz or atom or PlantUML Viewer or PlantUML)が改修されないとダメなんだと思う。

UITableViewのセル間の境界線を変更する

セル間の境界線のスタイルと色と開始位置/終了位置を変更する方法です。 class ViewController: UIViewController { @IBOutlet private weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // 線の種類 tableView.separa…

UITableViewで一番下までスクロールする方法

概要 UITableViewで一番下のセルまでスクロールする方法についてまとめました。 実装方法 UITableView#scrollToRow(at:at:animated)を使います。 第一引数のIndexPathにはrowとsectionを指定します。 この時にデータ配列から一番最後を指定することで一番下…

へそ曲げた我が子から要求分析してママと子ども間のデッドロックを解消する

概要 この記事は 子育てエンジニア・クリエイター Advent Calendar 2017の15日目の記事になります。 adventar.org 記事テーマに悩みましたが、パパエンジニアの強みを育児に活かす方法について書こうかな。 敢えて堅苦しく強気な書き方してみたらガイドライ…

UITableViewのセルの高さを動的に変更する

iOSのUITableViewのセルの高さを内容に応じて動的に変更する方法についてまとめました。UITableView.rowHeightにUITableViewAutomaticDimensionを設定するのと、Auto Layoutで縦軸が自動算出できるようにすることがキモになります。

UITableViewの空セルの線(separator)を消す実装

UITableViewの空セルの線(separator)を消す 概要 iOSで使われるUIベスト3に入るUITableView そんなUITableViewですがデザイナーからよく指摘される空セルには線(separator)を引かないで消す実装についてまとめました。 実装方法 UITableView.tableFooterView…

UITableViewに引っ張る更新Pull to Refreshを実装する

UITableViewに引っ張って更新する機能(Pull to Refresh)の実装についてまとめました。UIRefreshControlを使うことで簡単に実装できます。

人は通勤で毎年23万円分の時間を使っている

例えば↓のような都内にいそうなモデルケースを参考に、年収を元に通勤にいくらかかっているかを求めてみた。 ※ちなみにモデルケースは私ではない。 モデルケース 都内在住 家族持ち 年収500万 通勤50分(内徒歩15分) 1日の通勤にかかる費用 年収から時給を求…

WHR-1166DHPで現在のチャンネルが-1なったら

Baffalo-A-XXXX が表示されなくなって、ルータ本体のポータルを見ていたら、現在のチャンネルが-1になっていました。 ネットで調べたところ、下記のページで自分と同じ症状の人がいたので、見てみたら色々とアドバイスをもらい試していました結局だめそうで…

子ども用ハーネスを使って身近な頭の堅い友人を見つけて今度の付き合いを考えればいい

都内で子ども3人を育てています。 ハーネスは犬の散歩みたいと偏見持つ方や、手を繋げばいいと言う方がまだいるようですね。 犬の首輪+ロープもハーネスも車のシートベルト、自転車のチャイルドチェアのベルトも、ベビーカーのベルトも、ヘルメットの紐も…

カバレッジがもたらす災い。カバレッジ率なんてゴミ箱に捨てて、みんなで飲みに行け。

今働いている会社で、そういったことにダイレクトに巻き込まれたわけじゃないですが、 単体テストのカバレッジについて思うことを書きました。 テスト添削以外でもリリース速度を上げる方法はありますが、ここではそれは記載していません。 ここで言いたいの…

Webアーキテクチャとモバイルアーキテクチャをごっちゃにすると違和感と齟齬しか残らない

久々の更新。 お酒の力をかりてツラツラと書いてます。 私は仕事でWebのフロントエンド、バックエンドと、モバイル(iOS/Android/Xamarin)の開発を一通り経験しました。 そんななか、最近のQiitaとかのアーキテクチャ記事に凄い違和感を覚えるので、頭の整理…

物事はほとんどが悪いことから始まる。なので自分らはそこから良いことに変えるのが大切

テレビ見てて久々に「ビビビッ!」って来て、そこから自分なりに解釈したのがタイトル文。 最近スケジュールに嵌ってます 状況 今、やりたいこと、やるべきことが多すぎて既にパンク状態です。 タスクのような一時的な作業ではなく、ルーチンのように毎日少…

器の大きい男になりたい人へ。これ試してください。効果ありました。

対象者 彼女や妻に 「イラッ」っとした人 「ムッ」っとした人 不満がある人 悶々と考えてしまう人 このページを見る方は、器が小さいと言われた方、自分で気づいた方だと思うので、 男として器を試されやすい女性との付き合い関係に関した記事になります。 …

モノづくりに求められるもの

モノづくりに携わる人は使っていただける方の人生にストレスを与えてはならない これは私の中にある古く堅い考えです。 モノづくりと聞くと製造業や実際に触れるハードウェアの印象がありますが、 ここでいうモノづくりに携わる人とは、Webサービスやアプリ…

最近次女のハイテンション笑顔が人生の栄養です。

ネットで見かける記事で思うこと 全ての記事に当てはまることではないけれど。 有名ニュースアプリなどで掲載されると、その記事内容がてきとーで、ソースもまともじゃなくても、それが正だと誤ってしまうことがある。 特にそれが自分には大して興味がなかっ…

エンジニアの心を折るのは容易い

お金優先指向に待ち構えるリスク 現在都内の自社発Webサービスの会社にエンジニアとして勤めています。 最近「なんだかなぁ…」と思うことがあります。 半分が愚痴になってしまっていますが、自分の考えを少し書いてみました。 常にこの考えが正であるとは思…

スライムから風邪、怠惰そしてライフプラン

スライム味 スライムはニンニク(骨)、卵(タンパク質)、油(脂肪)でできているようです。 娘(次女)が風邪をひきました 先ほどお風呂から上がると体全体をブルブルと震わせてました。 最初は、まだ足腰が弱いのでバランスが保てずにグラグラしているだ…

ほっこり

今日は朝からほっこりしたことがありました。 仕事は疲れたけど、思い出すとほっこりします。 私はほとんど毎日朝は同じコンビニで朝食を購入しています。 今日もコンビニで購入後、コンビニ横の通路で楽天チェックをしていました。 通路には保育園の先生が…