Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Metalのパフォーマンスがわかりやすく活きる例としては、動画のリアルタイム処理です。動画撮影中に30fpsなり60fpsなりで渡されてくるカメラからの入力をMetalで画像処理し、Metalで描画する、ということをやります。 カメラからの入力を取得する カメラからの入力をリアルタイムに受け取るようにする実装は、何も新しいことはないのでここでは省略します。AVFoundationのAVCaptureSessionを用いるおなじみのものです。iOS-10-Samplerにもそういう実装があるので必要に応じてご参照ください。 関連: iOSでの動画処理における「回転」「向き」の取り扱いでもう混乱したくない - Qiita AV Foundationで240fpsスローモーション動画撮影を実装する - Qiita AVCaptureVideoDataOutputSampleBufferDeleg
Xamarin Advent Calendar 2016 17日目です。 以前から僕はネイティブバインディング関連の記事をいろいろ書いてきました。 Xamarin.iOS でバインディングライブラリを作る Xamarin.iOS のネイティブバインディングを活用して既存の Objective-C 資産を流用する 新しくなったObjective SharpieでCocoaPodsのバインディングライブラリを作る 今回もネイティブバインディングです! Swift が使われるようになってしばらくたち、CocoaControlsに新しく出てきている今風の UI ライブラリはほとんど Swift 製になりつつあります。 Swift を使う場合、Swift のサポートライブラリ(ランタイム?)が必要となり、Swift で作ったアプリはデバッグ実行やアドホック配布はできるけどストアに上がらない…!という
この記事は、「Speee Advent Calendar 2016」の6日目です。 iosアプリエンジニアはテスト1を書かない? TDDやテストコードを書く重要性が叫ばれて久しいですが 日々業務でiosアプリ2のコードを書いていると中々テストを書く機会がありません。 また、社外のエンジニアの方とお話させて頂いても、あまり積極的にテストを書くプロジェクトは少ないように感じます。 この記事ではiosアプリでテストを書かない(書きづらい)理由と、それを突破してテストを書くにはどうすればいいかを考えてみます。 UIのテスト XcodeにはUIテストツールが含まれています。 コードベースで動作を指定して画面操作をシミュレートすることが可能ですが あまり有効に活用できている現場は無いように感じます。 おそらく問題点は2つあって 一つ目はシミュレータの動作の遅延などによって再現性の低いバグを引き起こすこ
これは Swift Advent Calendar 2016 16日目の投稿です。 昨日15日目は@_ha1fさんのPhotos.frameworkのサンプルを読むでした。 TL;DR Multipart頻発したり、大きなデータのダウンロードがメインのアプリではなく、単純なGet, Postのみなら、URLSessionで問題ない 背景 今までiOSでの通信処理といえば、当たり前にAFNetworkingかAlamofire (その他のライブラリも触ったことはありますが) を使っており、お恥ずかしながら、標準APIでの処理を書いたことがありませんでした。「Swift 通信」で検索すると1番目にAlamofireを使った記事がヒットすることからも、自分のような人は意外と多いのではないでしょうか? また、mono0926さんのiOS 10が正式リリースされた今、そろそろ既存アプリのiOS 8サ
ashfurrow/xcode-hardware-performance でいうと中の上くらいのスペックです。 1. Build Target の設定を見直し まずおかしいと思っていたのが、Target が複数ある場合全ての Target が Build されていること。 Target は API を本番/テスト環境の切り分けのために3つ用意し、テスト用の Target を1つの計4つ用意していた。 この構成で、 ClassiDevelop をビルドしただけなのに ClassiStaging と Classi もビルドされており3倍時間がかかっていた なぜ指定外の Target がビルドされていた? ClassiTests が Classi, ClassiStaging, ClassiDevelopment の3つに依存していたため、依存されていたもの全てビルドされていた。 それを Cla
はじめに Xcodeのバージョンも 8になり、社内プロジェクトの方も Swift3化を進めているのですが、色々とトラブっています。特に困っているのが Objective-Cと Swiftが混在する環境でのエラーオブジェクト(NSError、Error)の扱いです。 時間がなくてちゃんと体系的にまとめきれていないのですが、自分自身の問題整理と覚書も兼ねて、現状でわかっていることをまとめてみました。 SwiftのErrorと、Objective-Cの NSError 少し前提を話します。 まず、Swiftの世界ではエラーは Error という抽象的な型(プロトコル)で扱います。このプロトコルは Swift2までは ErrorTypeという名前でしたが、Swift3で Error に名称が変更されました。より一般的な名前が与えられたということですので、役割が昇格したと言えます。 一方、Objec
この記事は、はてなエンジニアアドベントカレンダー2016の8日目の記事です。昨日は id:ichirin2501 による MySQL-5.6のMRRにデッドロック回避の夢を見る - ichirin2501's diary でした。 おはようございます。シニアアプリケーションエンジニアの id:cockscomb です。皆さんは Swift でバリバリ開発していますか。 9月に Swift 3 が正式にリリースされ、弊社としてリリースしているアプリもほとんどが Swift 3 に移行済みです。Swift 3 への移行はスムーズでしたが、それでも気を遣う部分が多くありました。中でも SE-0069 Mutability and Foundation Value Types や SE-0086 Drop NS Prefix in Swift Foundation によって議論された、値型の Fo
Re.Ra.Ku アドベントカレンダー 7日目です。 こんにちは、Re.Ra.Kuさんのパートナーとして開発に携わっています、神場です。 アドベントカレンダーをやるということで、せっかくならと思い手を挙げたところ参加出来ることになりましたので、書かせていただきます! 概要 今回はSwift製のJSON decoderであるUnboxをプロダクトで採用してみて、かなり使いやすいということが分かりましたので、いくつか使い方のサンプルを紹介するという内容の記事になっています。 Unboxを選択した理由 Swift3でJSONを扱うライブラリにはSwiftyJSONやArgoがあると思いますが、今取り掛かっているプロダクトでは マッピング時に型推論が出来る 異なる型への変換が楽に出来る インターフェースが直感的である 実装が軽い Githubのスター数がある程度(300以上ぐらい?)付いている 等
About the content This talk was delivered live in September 2016 at try! Swift NYC. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. The addition of support for Swift as a server-side programming language makes it possible to use not just the same language on client and server, but also to reuse APIs and code. This
こんぬづは、登壇者にもかかわらずイベントレポートも書くという荒業をやっています、田中です。 これは修行だ。自分との戦いだ。 今回はdots.様主催の、iOS界隈のスターが一堂に会する素敵イベント!「iOSオールスターズ2」に行ってきので、そのレポートをお送りします! 概要 日本を代表するiOSエンジニアが一同に集結し、iOSエンジニアのためのiOS勉強会を開催します!各々の取り組み事例や開発の中でのTipsをお話しします。 iOSオールスターズ1の様子はこちらから↓↓ https://eventdots.jp/event/311301 dots. イベントページより引用 Togetterまとめ 登壇者でもある熊谷さん(@es_kumagai)がTogetterをまとめてくださいました! 当日の盛り上がりがよくわかる内容となっています。 内容 『RxSwift in Practice
Xcode 8.1 がリリース Xcode 8.1 が正式リリースされました。iOS は iOS 10.1 向けの、macOS は macOS Sierra 10.12.1 向けのアプリケーションを作ることができます。特に macOS については MacBook Pro に搭載される Touch Bar が操れる NSTouchBar が SDK に追加されていたりで、何かと話題でしたね。 Xcode 8.1 Release Notes Xcode 8.1 には Swift のパッチバージョンとも言える Swift 3.0.1 が同梱されています。つまり Xcode 8.1 で使うことのできる Swift のデフォルトバージョンは 3.0.1 ということになります。 Swift 3.0 からどのような変更点があるか、リリースノートを参考にざっくり見ておきたいと思います。 新機能 nil を
すでに皆様痛感されていると思いますが、Swiftはビルドがとんでもなく遅いです。正確に言うと、Swiftのビルドが遅いのに加え、clang moduleのビルドが遅いため、frameworkの数が増えてくるとビルドにかかる時間がどんどん破滅的なことになってきます。 Swift & dynamic framework導入前はアーカイブ込みで10分以下だったビルド時間が、現在は20分を超えてしまっており、更に今後もSwiftコードの増加ととframeworkの増加に従ってビルド時間が伸びることが予想されます。そこでなんとかしてこの時間を短縮しようと思って調べてみました。 そもそもビルド時間が伸びる原因 Swiftのビルドが遅い、特に型推論が遅い frameworkのビルドが遅い Xcode上でcleanを実行するとプロジェクト内でビルドしているのframeworkが全てビルドし直しになり分割ビ
以前、以下の呟きをしましたが、わりと古い方法を利用しているコードが散見されるので、Swift 3での同期処理(排他制御)についてまとめてみます。 getterはsyncでSwiftぽいロックになってて良いけど( ´・‿・`)https://t.co/X2OrjyBmH7 で、Foundation.Lockを使わずにDispatchQueue.sync使おうという話があった。 https://t.co/77zzkNUGLj — mono( ´・‿・`)🐶🍎📱⌚️ (@_mono) August 7, 2016 参考: Concurrent Programming With GCD in Swift 3 - WWDC 2016 - Videos - Apple Developer かつての方法 WWDCスライドのpp.120-123に載っているのでご覧ください。 WWDCで勧められていた
5/21追記 swift3.1ver 【swift3.1】SnapKitを使ってAutolayoutを簡単に実践する - 知行合一 SnapKitを使ってAutoLayoutの練習問題を解いてみた。 Requirements 環境 swift version 2.3 この本の答え 雑にまとめている。 使うViewはorengeView, grayView, brownViewとspacerView。 それぞれインスタンス作成するだけでサイズとかを後から指定する流れ。 Q.1 (Q3) 中心にViewを置く view.snp_makeConstraints(closure: { (make) -> Void in make.size.equalTo(CGSize(width: 100, height: 100)) make.center.equalTo(CGPoint(x: 0, y: 0)
Swiftのmap, filter, reduce(などなど)はこんな時に使う! Swiftをさわり始めてある程度経つと「Swiftらしく書きたい」という欲望がわいてきます。そしてObjective-Cでは触れたことのない、map, filter, reduceというのものを目にすることになると思います。 これらの関数を見たときの最初の印象は「うわ、何これ」といったもので、見慣れない構文に戸惑いました。同じように戸惑いを感じた方もいるのではないでしょうか。 特にどんなシチュエーションで、何を使えばよいのかといった部分があまりピンと来ず、なかなか使いこなせずにいました。 そのような経験を踏まえ、**こういう時は、これを使う!**と一言で説明することを目指してこの記事を書きました。 はじめに結論から 一言でまとめると、これらの関数を覚えるとめちゃくちゃ便利になります。 この関数はこんな時に使う
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く