サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やる気の出し方
dealforest.hatenablog.com
1桁の手書きの数字(0〜9の数字に対応)を分類するモデルを Vision, CoreML から利用してみたいと思います。 Apple が提供しているモデルもありますが、今回は自作したモデルを使っていきます。 input が画像のため今回のモデルでは input の型が Image, MLMultiArray で作成することができます。 それらを Vision, CoreML から利用するのにどれくらい変わってくるのかを調べてみました。 mlmodel を用意 keras のサンプルをおこないモデルを作成しました。 今回利用するモデルは手書き数字の画像をもとに推論を行い0-9のどの数字かを判断するものです。 keras でモデルを作成したままでは CoreML から使えないため coremltools で変換します。 import coremltools mlmodel = coremlto
「Xcodeのブレークポイントで音を鳴らす」で耳デバッグを紹介されていますが、音を鳴らせない状況ではイヤホンをMacにつなぐと言われているように毎回気軽にデバッグをできないのが難点ではあります。 そこで最近、便利だなと思っているのが通知センターを使う方法です。 Xcodeから起動した際、該当箇所が実行されたかどうかを確認したいというニーズは満たしてくれます。 通知センターがゴミ通知で溢れるという懸念もありますが、簡単に消せるのであまり気にしていません。 やり方に触れる前に通知を送信する方法に触れておきます。 Mavericks以降では Apple Script から送信することができます。 $ osascript -e 'display notification "[メッセージ]"' 簡単ですね。 それでは実際にXcode経由で通知を送信してみましょう。 通知を送信するにはいくつかの方法が
iOS 10から UIKit に UIDebuggingInformationOverlay が追加されました。 記憶にも新しいことでしょう。 これを使うと次のようなデバッグ用の画面を表示することができます。 private APIではありますが最低限のデバッグできる機能が提供されていました。 どういうことができるかは「UIDebuggingInformationOverlay - Low Level」が参考になります。 これが残念ながら iOS 11 からは利用できなくなっていました。 iOS 10での表示方法 private APIなのでビルドすると動的に呼び出す必要がありますが、 今回は本質的な箇所を見てもらいたいのでLLDBで実行しています。 // Objective-C (lldb) po [UIDebuggingInformationOverlay prepareDebuggi
タイトルのとおり本日発売のWEB+DB PRESS Vol.101に寄稿しました。 WEB+DB PRESS はエンジニアになりたての頃から読んでいた雑誌なので、 実際に自分の名前が載っているのを見た時に、なんとも言えない気持ちになり感動めいたものがありました。 今回の特集記事はサーバーサイドSwiftで有名な武井くん(@noppoMan722と共著しました。 僕はiOS 11とXcode、武井くんはSwift 4とサーバーサイドSwiftについてそれぞれ執筆しました。 特集について 特集の構成 第1章 iOS 11の新機能 第2章 iOS 11の新しいフレームワーク 第3章 Swift 4の新機能 第4章 サーバーサイドSwift入門 第5章 Xcode 9の新機能 特集の概要 2017年9月20日にiOS 11がリリースされ、Swift 4、Xcode 9が正式に利用できるようになりま
UIApplication.shared.keyWindow?.rootViewController で画面を差し替えたい時がありますよね? 例えばどんな時があるかとかと言いますと 認証画面があり signup/signin 後に画面を切り替え sigup/signin 後にチュートリアルの画面を表示 signout 後に認証画面を表示 などがあるかなと思います。 タイトルの通り、とある条件を満たして rootViewController を切り替えると差し替える前の viewController が解放されずに残り続けてしまいます。 これは iOS8 頃から認識していた問題ではありますが、iOS10 現在になっても修正されていません。 rdar://21404408: Memory leak in iOS 8+ after setting window.rootViewControlle
Array または Dictionary のインスタンスを JSON 形式で print する LLDB Plugin ほしい と言われたので作ってみました。いざ作ってみるとこれがとても便利!! github.com README に install 方法が書いてあります。 注意点としては Swift モードの時の LLDB でしか意図した挙動はしません。 どうしても使いたい場合は、手元で Objective-C に書き直してもらえればと... LLDB Plugin の作り方は以前に記事を書いたので、そちらが参考になると思います。 dealforest.hatenablog.com タイトルの通りインスタンスを JSON に変換するということなので json コマンドにしました。 DataSource や API のレスポンスなど、特にデータ量が多いもの(でかい class や stru
「iOSDC」「AKIBA.swift×Swift愛好会」「iOSDC Reject Conference days2」で話させていただいたんですが、発表ではなるべく興味を持ってもらえるような内容になっていて、LLDB Plugin の作り方など詳細についてはふれていませんでした。 本来ならブログ書いてあるので見てください。と言いたかったんですが、なかなか手が回らず今になってしまいました。 できることも多いので、回数を分けて書いていければなと思います。 言語選択 LLDB の Plugin は Python で作られています。 ただし、Python が全くわからなくても作れているんで安心してください。 LLDB で実行する際に iOS エンジニアなら2つの言語から、どちらで実行するかを選択する必要があります。 Swift Objective-C 正直どちらを選んでもいいと思っています。 ど
8/19-20 にかけて開催された 400人規模 600人規模のiOSカンファレンス「iOS Developers Conference Japan 2016」にて「Xcode で快適なデバッグライフを追い求める」というタイトルで発表させていただきました。 以下、CFPより 僕は怠惰な人間です。プログラミングの大半はデバッグに時間を費やすと思っているので、なるべく早く原因に辿りついたり効率のよいデバッグライフを送りたいと常々思っています。 プリントデバッグもいいのですが Xcode には便利な機能が色々とあります。それらを使うことで簡単に原因を特定できるケースがあります。 visualize されるのは分かりやすいですよね。 それらを tips で紹介できたらなと思います。 発表資料 皆さん怠惰ですよね…? -Xcodeで快適なデバッグライフを送りましょう- #iosdc #a - Tog
「WWDC.next」で発表させていただきました。 WWDC のデバッグセッションは今すぐにでも実践できる tips が意外に多いので普段のデバッグの手助けになると思います。 ただしボリュームが結構でかいので心が折れないように進めていくのをオススメします。 (1日で全部見て気持ち悪くなりました...) 「Xcode で快適なデバッグライフを追い求める | iOSDC Japan 201」にトークを応募したのでもしかしたら話せるかもしれません。 ではでは。
「Tokyo Server-Side Swift Meetup #4」で発表させていただきました。 このイベントがきっかけで server side swift に初めてふれてみたのですが、久しぶりに web の開発をした気がしてとても楽しかったです。 Xcode で使うことを気にしなければ簡単に試せたのでイメージはすごい変わりました。 資料の中(P.43)に書いていたのですが SPM で dylib を Build するものに関しては、どうしても Xcode 側でうまく Build することができませんでした。 framework と dylib が絡む Xcode の設定がおかしいのかなと。 とはいえ clang に -framework で compile しようとしているのに、なぜ -l しようとしてるのかもよくわかりません。 仕方ないので力技で swift build で作成した
「FiNC WWDC振り返り勉強会」と「potatotips #30 (iOS/Android開発Tips共有会)」で発表させていただきました。 内容としては Xcode Editor Extension についてと、既存の Xcode Plugin が Xcode8 では動かなくなるのを回避する方法があるよ。 という内容を話しました。 ngs さんと同じ内容を話していたので該当箇所は結構削ったので Xcode Editor Extension について、そちらの資料を見るのがいいかなと思います ja.ngs.io Xcode の非証明バイナリを作る方法を gist にスクリプトでまとめておきましたので自己責任でお願いします。 非証明バイナリにするというのはどうなのかといった話もあると思いますが、それでも Plugin を使いたい人もいると思うのでそういう人にはいいんじゃないでしょうか。
potatotips #29 (iOS/Android開発Tips共有会) で LT をしてきました。 主催の方々お疲れ様でした。とても楽しめました。 id:koogawa さんの 「 2016/5/25 #potatotips #29 (iOS/Android開発Tips共有会) に参加してきたよ」が当日の様子がわかりやすいのでオススメです。 発表内容 今回は Anglerfish という Xcode Plugin を作ったのでそれについて話しました。 Anglerfish とは iPhone の simulator を使用順にソートする Xcode Plugin です。 github.com まだ Xcode 起動時の情報を基にしてソートするしかできないのですが今後はもう少し機能を追加する予定です simulator のソート順をリアルタイムに反映 v0.1.1 実装済 ソートの on
基本的なことは「iOSアプリのwebviewでinput[type=file]が正常に動作しない時」見てもらえれば分かるかなと思います。 簡単に説明すると画像を選択後 Image Picker を閉じようとした際に WebView をモーダルで表示していた場合、モーダルごと閉じられてしまうということです。 どういう view 構造にするかにもよりますがこのような構造でモーダルを表示していたとします。 [modal の view 構造] UINavigationController └── UIViewController └── UIWebView この場合 UINavigationController に対して解決方法を適応してやればいいわけです。 extension UINavigationController { override public func dismissViewCon
「懇親会における英会話のプロトコル」を見て try! Swift に行くまでに何か簡単に話せる小ネタがあればなと思って作りました。 Swift を書いているとよくあるのですが、頻繁に中間データが壊れてしまいます。 そのため DerivedData を消すとなおったりします。 消す方法は「Window」->「Project」 を開いて該当するプロジェクトの DerivedData を削除するといったことをしないといけません。 めんどくさいですね。 Clean を実行した時に自動で消してくれたらいいのにと思っていました。 と、いうわけで作りました。 dealforest/Cichlid(シクリッド) 由来は掃除魚(ベラ・ハゼ・シクリッド・ナマズなど)のベラを採用しました。 Swift で作った Xcode Plugin でコード量も少ないので見れば簡単にわかるかなと思います。 ざっと作った感じ
PUSH 通知が有効/無効をアプリ上で表示(UISwitch等)して有効にしようとした場合にアプリの設定画面に遷移して有効にしてもらう。 といったことを実装することがあるかもしれません。 実装は「[Swift] iOS でプッシュ通知の有効・無効を判定する」を見てもらえれば分かりやすいと思います。 それが意図した通りに動かないケースに遭遇しました。 isRegisteredForRemoteNotifications で有効/無効を確認するのですが、PUSH 通知を許可していないのに true になったり、再インストールした時にダイアログが出ている状態なのに true になったりなどです。 解決方法 registerForRemoteNotifications を呼び出しているしている場所を確認してください。 ドキュメント を見ると application:didRegisterForRe
このページを最初にブックマークしてみませんか?
『dealforest.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く