Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ThreadとObjective-Cに関するraimon49のブックマーク (18)

  • オーディオアプリ開発でありがちな4つの間違い | POSTD

    ここで論じているのは、オーディオアプリの開発者が陥りがちな 4つの間違い 、 より良く開発する方法 、 問題個所の発見方法 です。主に開発者向けの内容ですが、開発者以外の方にも知っておいてもらいたいと思います。ここでは、開発者向けの診断ツールである Realtime Watchdog を紹介し、 人気のあるオーディオライブラリの調査結果 を提示します。 オーディオアプリの開発はとてつもなく楽しいです。やりがいを感じるし、創造力を発揮できる範囲が大きく広がり、ひとたび開発が終われば、 誰かがクリエイティブなツールとして使ってくれるのです! こんな分野は多くないし、この領域で働けるなんて非常に幸運だと自分でも思っています。 しかし、仕事でオーディオアプリを扱う時には深く考えなければならない部分もあります。オーディオアプリの開発者としてユーザに対する責任があるのです。大前提として、ユーザを公共の

    オーディオアプリ開発でありがちな4つの間違い | POSTD
  • Swiftのパワー(objc.io #16-1 日本語訳) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事はobjc.io, Issue #16, The Power of Swiftの日語訳です。 Swiftのパワー Issue #16 Swift, September 2014 By Chris Eidhof まずはじめに、私は非常に偏っていることを認めなくてはなりません。私はSwiftが大好きです。私がCocoaのエコシステムに関わって以来起こったことの中で一番いい出来事だと思います。なぜそう思うか、それを私のSwift、Objective-C、Haskellの経験を共有することで伝えたいと思います。この記事で取り上げること

    Swiftのパワー(objc.io #16-1 日本語訳) - Qiita
    raimon49
    raimon49 2015/05/27
    取り得る値の種類が有限でパターンマッチさせたいものは積極的にenumで表現する。type safetyとimmutabilityの嬉しさについて。
  • [iOS 8] 新たなタスク優先度管理API – Quality of Service – | DevelopersIO

    GCDとNSOperationのXNUカーネル優先度 iOSで並列処理を行う為の代表的なAPIとしてはGCD(GrandCentralDispatch)とNSOperationの2つがあります。 どちらのAPIも以下のような方法を通じてOSレベルでのスレッド優先度を決定できました。 GCD dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); dispatch_async(queue, ^{ //タスク }); NSOperation @interface MYOperation : NSOperation @end @implementation MYOperation - (void)main { @try { @autoreleasepool { //タスク } } @

    [iOS 8] 新たなタスク優先度管理API – Quality of Service – | DevelopersIO
    raimon49
    raimon49 2015/05/13
    qualityOfServiceプロパティでサービスレベルに応じた優先度を指定。DISPATCH_QUEUE_PRIORITY_XXXやthreadPriorityプロパティはiOS 8で廃止。
  • (続)Facebook: iOSアプリのアーキテクチャ - ワザノバ | wazanova

    http://www.infoq.com/presentations/facebook-ios-architecture 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 「Facebook: iOSアプリのアーキテクチャ」でご紹介した、Reactの仕組みをiOSアプリのニュースフィードに応用した取組みについて、同社のAri Grantが今回は、実際にFacebookのiOSアプリで使われているコードを使って紹介してくれてます。InfoQのサイトでビデオを是非ご確認ください。 iOSのUIづくりの複雑さに、表示内容が常に変化するニュースフィードの仕様が拍車をかけて、 60 fpsを実現したい。=> レンダリングにフレームあたり17msしかとれない。 テキストレイアウトは時間がかかる。=> バックグランド

    raimon49
    raimon49 2015/01/19
    イニシャライザのコード付きで解説されてた。
  • Shibu's Diary: iOSはなぜAndroidの半分のスペックでも快適なのか

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 iPhone6/6 Plusのメモリが1GBしかない理由 この記事が突っ込みどころが多いと話題になっています。初期の頃はiOSのなめらかな動きと比べたらAndroidは劣化版と言われても反論できない感じでしたが、Nexus 4/Nexus 5ともなるとだいぶ快適で乗り換えても違和感なく使えるようになりましたが、同じぐらいの快適さが得られるハードウェアを比べてみると、メモリも半分で、コア数も半分で、クロック周波数も半分で、バッテリーにやさしいハードウェアになっていることは確か。なぜそれでやっていけるのか、ということについて僕なりの理解をまとめます。元の英語記事は読んでません。 メモリ管理方式の違い Androidはマーク・アンド・スイープ方式のGCで、iOSはNSAutorele

    raimon49
    raimon49 2014/11/20
    バックグラウンドタスクの違いは確かに。
  • Facebook: iOSアプリのアーキテクチャ - ワザノバ | wazanova

    https://www.youtube.com/watch?v=XhXC4SKOGfQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 FacebookのiOSチーム、Adam ErnstとAri Grantによる@Sacle 2014での講演。データモデルとビューレイヤの改善の取組みについて紹介してくれてます。 1) データモデル 背景 2年前からHTML5からネイティブに切り替えて一旦大きく改善したが、その後機能を追加するたびにアプリのパフォーマンスが悪化。 ネイティブに移行後、オブジェクトのキャッシュレイヤとしてiOSのCore Dataを使ったのが失敗であった。 Core Dataの役割は「整合性を含むオブジェクトグラフ管理」 Facebook iOSアプリの場合、サーバ側を正のデータとするが、

    raimon49
    raimon49 2014/09/17
    Reactの考え方をiOSアプリのViewにも適用。
  • Multitasking, High Resolution, and Other iOS Features

    Retired DocumentImportant: OpenGL ES was deprecated in iOS 12. To create high-performance code on GPUs, use the Metal framework instead. See Metal. Multitasking, High Resolution, and Other iOS FeaturesMany aspects of working with OpenGL ES are platform neutral, but some details of working with OpenGL ES on iOS bear special consideration. In particular, an iOS app using OpenGL ES must handle multit

  • Rebuild: 53: Less Code Is Better Code (Matz)

    まつもとゆきひろさんをゲストに迎えて、Ruby GC, Ruby 2.2, Swift, 開発環境、エディタ、Emacs などについて話しました。 Show Notes 2014 Fukuoka Ruby Nights Rebuild: 5: Ruby 2.0 (まつもとゆきひろ) Ruby version policy changes starting with Ruby 2.1.0 Ruby Garbage Collection: Still Not Ready for Production Ruby 2.1: Out-of-Band GC Watching and Understanding the Ruby 2.1 Garbage Collector at Work Feature #9634: [PATCH]Symbol GC Denial of Service and Unsa

    Rebuild: 53: Less Code Is Better Code (Matz)
  • facebookの"Building Paper"はすべてのiOSエンジニアが見るべき

    huin Job : Software Engineer(iOS, Android) Use : Objective-C, Swift, Java Like : Gadget, Apple, Photography, Art, Design, UI, UX More posts by huin. 日のAppStoreでは未だ公開されていないfacebookの「Paper」ですが、 そのUIは実験的ながらも非常に高い完成度で個人的にはすごく好きなアプリです。 良いアプリがあれば "どうやって作っているのか" が気になるのがイチiOSエンジニアの性なんですが、facebook自体がPaperの裏側について説明した動画をしていて、非常に良い内容だったので紹介します。 なんのイベントなのかはよくわかってないのですが、 公開日は4/18なので比較的最近だと思います。 当然英語なので理解は浅いのです

    facebookの"Building Paper"はすべてのiOSエンジニアが見るべき
    raimon49
    raimon49 2014/04/28
    >ジェスチャーからアニメーションに映るときのアニメーション速度にギャップを作らない 。UIPanGestureRecognizer#velocityInView:を利用する。
  • iOS Development Tips I Would Want If I Was Starting Out Today

    iOS Development Tips I Would Want If I Was Starting Out Today Making iOS apps is getting easier and easier with each new release of Xcode. However, all the new features and approaches means there are more options to choose from, outdated books and old documentation. Back in my day it was so much harder - that's is true in many respects, but a much higher level of quality and features is expected n

    raimon49
    raimon49 2014/04/17
    スレッドの事は忘れてGCDで、StoryboardsはプロトタイプにXibはベーシックなレイアウトのビューに留める。
  • Objective-CのSingleton、その歴史的経緯など - Toyship.org

    Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっと懐かしい話かもしれません。 Singletonとは 改めて説明するまでもないですが、シングルトンとはプロセス内のどこからよんでも同じオブジェクトにアクセスできるようにするデザインパターンです。 どのプログラミング言語においても重要なデザインパターンです。 iOSのシステムフレークワークでもよく使われており、 などはおなじみですよね。 上のメソッドは何回呼んでも同じオブジェクトがかえるようになっているので、いつでも同じオブジェクトに対して処理をすることができます。 自分で実装しなくても、ほとんどの人はシングルトンパターンを使

    Objective-CのSingleton、その歴史的経緯など - Toyship.org
    raimon49
    raimon49 2014/04/08
    良記事。allocとcopyメッセージが呼ばれた時の対応も。
  • 実行ループとdispatch_sourceの話。 - なるようになるかも

    いまやiOSのネットワーク処理といえばAFNetworkingな感じです。 しかし古いストリーミングAPIを使った経験があれば、ブロックベースのAPIでどうやってネットワーク通信を行っているのか疑問に思うはずです。なぜかというと、 GCDは実行ループを持てない からです。 そもそも実行ループとは何なのでしょう。 実行ループとは NSRunLoop Class Referenceより The NSRunLoop class declares the programmatic interface to objects that manage input sources. An NSRunLoop object processes input for sources such as mouse and keyboard events from the window system, NSPort

    実行ループとdispatch_sourceの話。 - なるようになるかも
  • GCD すごい - yashiganiの英傑になるまで死ねない日記

    iOS には,iOS4.0 から GCD っていう非同期処理の仕組みが入ったんだけど,今までこれという活かしどころがなくて使っていなかった ちょうどいい感じの活かしどころが出てきたのでここぞとばかりに試してみた. 音楽再生するアプリで自分の iPod Library からリストに上がっている曲を探してくるんだけど,これが 50 コくらい探そうと思うと結構な量の曲数が入っているライブラリとか,3GS だとむっちゃ時間がかかって画面の遷移に挟んだりすると,とてもじゃないけど精神衛生に支障をきたすレベルのロックがかかる(5~20秒くらい) こんなかんじ for (NSString *title in titles) { MPMediaPropertyPredicate *titlePredicate = [MPMediaPropertyPredicate predicateWithValue:t

    GCD すごい - yashiganiの英傑になるまで死ねない日記
  • Cocoaの日々: [iOS] バックグラウンド実行見本(Task Completion)

    (2011-12-01 追記あり)UIApplicationDelegateの呼び出しが iOS5 から変わった件。 Task Completion を使った iOS4 でのバックグラウンド実行サンプルを作ってみた。 サンプル 実行するとキューにたまった 30個のデータが順番に処理されてテーブルから消えていく。 処理は GCD を使い別スレッドで実行される。右上の[+]ボタンを押すとキューへデータが追加されていく。途中でホームボタンを押してアプリを切り替えても Task Completion によって処理は停止すること無く実行され続ける。わかりやすいようにアプリのアイコンバッヂに残タスク数を表示してみた。 バッジの数字は時間と共にカウントダウンされていくので処理が行われていることが確認できる。 Task Completion とは? Task Completion は、iOS4 から導入さ

    Cocoaの日々: [iOS] バックグラウンド実行見本(Task Completion)
  • Grand Central Dispatchで楽々マルチスレッド iPhoneプログラミング - @yuumi3のお仕事日記

    iPhoneでもiOS4以降サポートされたGrand Central Dispatchを使うと、マルチスレッドを使ったプログラムが簡単に作れます。WWDC 2010のビデオ(#206, #211) を見て何となく判った気になったのですが、まだクリアでない点があったので自分でコードを書いてみました。 私の理解では、Grand Central Dispatch(GCD)はには マルチプロセッサを有効に使える、並列プログラムを簡単に書ける 操作性を高める、並行処理を簡単に書ける の2つの目的があると思います。ここでは 2. に付いて書きます。 1.については Wikipediaの The second exampleが参考になると思います。 今回のサンプル ここでは、Twitterのpublic timelineを取得し、つぶやきとアイコンを表示するプログラムを、スレッドをまったく使わないコード

    Grand Central Dispatchで楽々マルチスレッド iPhoneプログラミング - @yuumi3のお仕事日記
  • NSOperation 非並列実行モードと並列実行モードの使い分け - A Day In The Life

    バックグラウンド処理を手軽に実行できる NSOperation クラスですがこのクラスをきちんと理解して使うには NSOperationQueue クラスについて理解する必要があります。 前回の記事で NSOperationQueue の使い方について説明しました。まだお読みでない方はこちらの記事を先に目を通しておくことをお勧めします。 NSOperationQueue スレッドと処理の関係 今回は NSOperation について NSURLConnection を使ったサーバ通信プログラムを例に説明していきます。 NSOperation には2つの実行モードが存在する NSOperation クラスには「非並列実行モード」と「並列実行モード」の2つの実行モードがあります。 非並列実行モードは処理の終了を NSOperationQueue に任せるのに対し、並列実行モードはプログラマが任

    NSOperation 非並列実行モードと並列実行モードの使い分け - A Day In The Life
  • しおなみ日記:performSelectorInBackgroundで別スレッドに処理を投げる時に注意するべきこと

    2011年05月08日 performSelectorInBackgroundで別スレッドに処理を投げる時に注意するべきこと メインスレッドからperformSelectorInBackground:withObjectメソッドを使ってUIWebViewオブジェクトのインスタンスを作成しようとしたところ、実行時に以下の様なエラーメッセージをコンソールに出力してアプリが落ちました。。 「Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread.」 このときのソースは以下の通り。 -(IBAction)doXXXX:(id)sender{ ・ ・

  • iOS/iPhone開発小技 - Nikep's blog

    ここ暫く、常駐でiPhoneアプリの開発をしてきました。他人のアプリ開発をすると、想定外の機能や仕様を実装することになることがしばしばです。そうすると、知らなかったやり方を調べたり考案したりしなくてはならず、勉強になることも多いです。この過程で分った、iOS開発のtipsを紹介して行きます。 iOSアプリのスレッドの扱いiOSの開発では、通常はスレッドを意識する必要はありません。基的には、システムから呼ばれる(例えばViewController Class等の)メソッドを実装するわけですが、これらは、殆どMainThreadで動きます。また、非同期APIなどでは、システムが適宜スレッドを分けて実行してくれるからです。しかし、UIActionIndicaterを使うときなどで、例えばUIWebViewのデリゲートが別スレッドから呼ばれるのに気づいたります。 新たに別スレッドを上げて、非同期

    raimon49
    raimon49 2012/09/04
    performSelectorOnMainThreadでメインスレッドにコンテキストが戻る
  • 1