Metal で算術演算(MTLComputeCommandEncoder) を行った際のデバッグ方法

Metal といえばテクスチャなど GPU を使ったレンダリングの処理をおこなうものと思う方が大半かと思います。 そのような利用の時は「Metalのデバッグまとめ(随時更新)」に書かれているようなデバッグ方法でことたります。 今回は算術演算で GPU を使いたく…

自作したモデルを iOS で使う際に input の型がどのような影響を与えるのか調べた

1桁の手書きの数字(0〜9の数字に対応)を分類するモデルを Vision, CoreML から利用してみたいと思います。 Apple が提供しているモデルもありますが、今回は自作したモデルを使っていきます。 input が画像のため今回のモデルでは input の型が Image, MLM…

Xcodeのブレークポイントを通知センターに表示する

「Xcodeのブレークポイントで音を鳴らす」で耳デバッグを紹介されていますが、音を鳴らせない状況ではイヤホンをMacにつなぐと言われているように毎回気軽にデバッグをできないのが難点ではあります。 そこで最近、便利だなと思っているのが通知センターを使…

iOS 11からUIDebuggingInformationOverlayを使えるようにする

iOS 10から UIKit に UIDebuggingInformationOverlay が追加されました。 記憶にも新しいことでしょう。 これを使うと次のようなデバッグ用の画面を表示することができます。 private APIではありますが最低限のデバッグできる機能が提供されていました。 ど…

WEB+DB PRESS Vol.101にiOSの特集記事を寄稿しました

タイトルのとおり本日発売のWEB+DB PRESS Vol.101に寄稿しました。 WEB+DB PRESS はエンジニアになりたての頃から読んでいた雑誌なので、 実際に自分の名前が載っているのを見た時に、なんとも言えない気持ちになり感動めいたものがありました。 今回の特集…

iOSDC 2017でLTベストトーク賞をいただきました

iOSDC Japan 2017にてiOSDC Japan 2016 の賞金を放置しておくと1年でどうなったか?!というタイトルでLTをさせていただきました。 めでたく今回もベストトーク賞をいただき投票していただいた方はありがとうございます!! 今回のLTのネタ元となった前回の…

特定の条件で rootViewController を差し替えるとメモリリークする件

iOS

UIApplication.shared.keyWindow?.rootViewController で画面を差し替えたい時がありますよね? 例えばどんな時があるかとかと言いますと 認証画面があり signup/signin 後に画面を切り替え sigup/signin 後にチュートリアルの画面を表示 signout 後に認証画…

AnyObject を JSON として出力する LLDB Plugin を作ったお話

Array または Dictionary のインスタンスを JSON 形式で print する LLDB Plugin ほしい と言われたので作ってみました。いざ作ってみるとこれがとても便利!! github.com README に install 方法が書いてあります。 注意点としては Swift モードの時の LLD…

iOSエンジニアのための LLDB Plugin 入門

「iOSDC」「AKIBA.swift×Swift愛好会」「iOSDC Reject Conference days2」で話させていただいたんですが、発表ではなるべく興味を持ってもらえるような内容になっていて、LLDB Plugin の作り方など詳細についてはふれていませんでした。 本来ならブログ書い…

iOSDC でベストトーク賞(3位)をいただきました

8/19-20 にかけて開催された 400人規模 600人規模のiOSカンファレンス「iOS Developers Conference Japan 2016」にて「Xcode で快適なデバッグライフを追い求める」というタイトルで発表させていただきました。 以下、CFPより 僕は怠惰な人間です。プログラ…

「Intrducing debug in WWDC2016」という内容で発表してきました

「WWDC.next」で発表させていただきました。 WWDC のデバッグセッションは今すぐにでも実践できる tips が意外に多いので普段のデバッグの手助けになると思います。 ただしボリュームが結構でかいので心が折れないように進めていくのをオススメします。 (1日…

Tokyo Server-Side Swift Meetup で「swift build と Xcode での build の違い」について発表してきました

「Tokyo Server-Side Swift Meetup #4」で発表させていただきました。 このイベントがきっかけで server side swift に初めてふれてみたのですが、久しぶりに web の開発をした気がしてとても楽しかったです。 Xcode で使うことを気にしなければ簡単に試せた…

Xcode Editor Extension と Xcode8 で Plugin が動かなくなったことについて発表してきました

「FiNC WWDC振り返り勉強会」と「potatotips #30 (iOS/Android開発Tips共有会)」で発表させていただきました。 内容としては Xcode Editor Extension についてと、既存の Xcode Plugin が Xcode8 では動かなくなるのを回避する方法があるよ。 という内容を話…

Anglerfish について potatotips#29 で LT してきました

potatotips #29 (iOS/Android開発Tips共有会) で LT をしてきました。 主催の方々お疲れ様でした。とても楽しめました。 id:koogawa さんの 「 2016/5/25 #potatotips #29 (iOS/Android開発Tips共有会) に参加してきたよ」が当日の様子がわかりやすいのでオ…

xcode-install を利用した Xcode のバージョン管理をやってみた

Xcode のバージョン管理するが面倒くさい!そう思ったことはありませんか? App Store から DL しても途中で失敗したりなかなかうまいこといきません。 仕方がないので Developer Center から直接 DL してきます。 そして古い Xcode.app をリネームして残し…

UIWebView で input[type=file] が正常に動かない対応について -決定版-

基本的なことは「iOSアプリのwebviewでinput[type=file]が正常に動作しない時」見てもらえれば分かるかなと思います。 簡単に説明すると画像を選択後 Image Picker を閉じようとした際に WebView をモーダルで表示していた場合、モーダルごと閉じられてしま…

DerivedData を簡単に消せる Xcode Plugin

「懇親会における英会話のプロトコル」を見て try! Swift に行くまでに何か簡単に話せる小ネタがあればなと思って作りました。 Swift を書いているとよくあるのですが、頻繁に中間データが壊れてしまいます。 そのため DerivedData を消すとなおったりします…

isRegisteredForRemoteNotifications が正常に動かなかったときの対処

iOS

PUSH 通知が有効/無効をアプリ上で表示(UISwitch等)して有効にしようとした場合にアプリの設定画面に遷移して有効にしてもらう。 といったことを実装することがあるかもしれません。 実装は「[Swift] iOS でプッシュ通知の有効・無効を判定する」を見てもら…

移転しました

2015年はフリーランスになり色々とあり、あまりブログや発表などでアウトプットができていなかったなと。 諸事情があり前のブログにログインできなくなったこともあり、2016年からは心機一転、移転してやり直すことにしました。(特に深い意味はないです) Swi…