タグ

ブックマーク / blog.ishkawa.org (4)

  • MacBookを開いた時に自動的にテザリングを開始する

    Nov 9, 2018 最近お外で作業する機会が増えて、MacBookを開く度にメニューバーからテザリングを開始するのが億劫だと感じるようになった。当は単体でモバイル通信ができるMacBookがあれば良いのだけど、今のところそういうモデルはないので、自分が手動でやっていることを自動化することにした。この手順は「スリープ解除のイベントを捕まえる」と「Bluetoothのメニューバーを操作する」の2つに分解できる。少し調べてみると、前者はSleepWatcherで、後者はAppleScriptで実現できることがわかった。 SleepWatcherは今日まで全然知らなかったけど、歴史が長いらしい。ドキュメントではMac OS X 10.1についても言及されているので、2000年くらいから開発されていてるみたい。そして、macOS Majave(10.14)の今でもきちんと動く。こういうプロダク

    MacBookを開いた時に自動的にテザリングを開始する
    braitom
    braitom 2018/11/12
  • Storyboardとの付き合い方 2018

    Aug 12, 2018 少し前に、自分のStoryboardの使い方をツイートしたら割と反応があったので、改めてまとめてみようと思います。これまで何年かiOSアプリの開発をしてきて、Storyboardとの付き合い方は何度も変わりました。なので、今回紹介するものはあくまで2018年現在のもので、来年には変わっているかもしれません。 説明のイメージを掴みやすくするため、画面の例を用意しました。左が編集時のStoryboardで、右が実行時のiOSシミュレーターです。具体的なトピックが出た時に、この例を説明に使うことがあります。 記事の最後にこれが動作するサンプルコードも用意しましたので、興味があればどうぞ。 Storyboardを使う目的 以下の2つを重視して、Storyboardを選択しています。 動作確認に掛かる時間を短縮する 成果物の構造を把握しやすくする ただし、Storyboar

    Storyboardとの付き合い方 2018
    braitom
    braitom 2018/08/16
    Storyboardを使うときのTips
  • モバイルアプリでgRPCを使う

    Feb 7, 2018 最近は、モバイルアプリとサーバーの通信にgRPCを使っています。gRPCは、サーバー同士の通信では徐々に使われ始めている印象がありますが、モバイルアプリでの使用例はまだ少ないと思うので、動機とか、感想とか、ウチはこうしてるというものを共有します。 リクエストとレスポンスの定義を1箇所にまとめる 今のプロジェクトでは、同じデータをサーバー, iOS, Android, Webで扱う予定がありました。普通のREST APIでは同じデータを4つの言語に翻訳する必要がありましたが、これをprotoへの翻訳の1回だけで済ませたいというのが、gRPCを使う最初の動機でした。 gRPCでは、リクエストとレスポンスの全ての情報をprotoファイル上で表現し、それを元に各言語のコードを自動生成します。APIドキュメントを人間が各言語に翻訳する場合と比べると、コードを書く手間が省けます

    モバイルアプリでgRPCを使う
  • Swiftのmanual mocking

    Mar 20, 2015 Objective-Cではテストケース毎にオブジェクトの一部だけ挙動を変えたい場合に、OCMockなどのライブラリを使うのが普通でした。 それらのライブラリはNSInvocationやMethod Swizzlingなどを使ったいわゆる魔術的なコードで実現されていることが多く、 “テストコードを書いているのによくわからんコードが動いてる!”ってなってモヤモヤしたりします。 一方、Swiftではmanual mockingという手法が取られたりするみたいです。 例えば、 class Object { var foo: String { return "foo" } var bar: String { return "bar" } } class ObjectTests: XCTestCase { func testFoo() { class ObjectMock:

    Swiftのmanual mocking
  • 1