タグ

Programmingとobjective-cに関するWatsonのブックマーク (29)

  • https://github.com/cookpad/styleguide/blob/master/objective-c.ja.md

    https://github.com/cookpad/styleguide/blob/master/objective-c.ja.md
    Watson
    Watson 2014/03/02
    cookpadのobjcコーディング規約
  • Objective-C のコードレビューチェックリスト - Qiita

    はじめに 稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードの見た目とコード以外の問題 不要な #import や @class 宣言を消す #import をソートする .m ファイルの中では、対応する .h ファイルの #import を最初の行に書く。空行をはさんで、ソートされた他の #import を書く。 X

    Objective-C のコードレビューチェックリスト - Qiita
  • 意識の高さからかコードフォーマッター設定を公開 - Qiita

    意識高い人は、コーディング規約作るけど、意識低い人はそれを採用しない。 これはどうしようもないので、もっと意識を高くし、コードフォーマッターを使って処理を自動化する。これで、(命名規則等を除き)見た目の部分でだいぶましになる。 コードフォーマッターにはUncrustifyを使う。 Xcodeを使っている場合は、BBUncrustifyPlugin-Xcodeを利用するとXcodeのプラグインとしてUncrustifyを呼べるようになります。あとはショートカットキーとかを割り当てたりご自由に。 以下一例 例では、Objective-Cを用いているけど、UncrustifyはC, C++, C#, ObjectiveC, D, Java, Pawn, VALAに対応しています。 #import "Test.h" @interface Test(Private) -(void)hoge; @en

    意識の高さからかコードフォーマッター設定を公開 - Qiita
  • レベル・目的別!iPhoneアプリ開発おすすめ本16冊(2013年2月版) - 拡張現実ライフ

    記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。 こんにちは!アキオ(@akio0911)です。 以前にレベル・目的別!iPhoneアプリ開発おすすめ書籍15冊(2012年8月版)という記事を書きましたが、それ以降、役に立つ・勉強になるが何冊か出ましたので、iPhoneアプリ開発おすすめリストを更新してお届けしたいと思います! 追記 ↓ 2015年11月版を公開しました! ⇒ iPhoneアプリ開発にオススメの7選(初心者向け含む)2015年11月版 iPhoneアプリ開発にオススメの7選(初心者向け含む)2015年11月版 1. iPhoneアプリ開発が初めてな初心者の方に。画面部品のリファレンスとしても

    レベル・目的別!iPhoneアプリ開発おすすめ本16冊(2013年2月版) - 拡張現実ライフ
  • iOSアプリ開発で例外の発生した場所を特定する | DevelopersIO

    iOSアプリを開発していて、例外が発生してアプリがクラッシュしてしまうことがしばしばあります。 Xcodeでは、クラッシュ時に得られる情報が少ないので、原因究明に時間がかかってしまいます。 そんなときは、「NSSetUncaughtExceptionHandler」を使用すると便利です。 まず、試しに、よくある例外をわざと発生させてみます。 - (void)viewDidLoad { [super viewDidLoad]; // ここで、わざと例外を発生させてみます。 [[NSArray array] objectAtIndex:0]; } 実行すると以下のようになります。 「UIApplicationMain」で止まってしまって、状況がよくわかりません。 「NSRangeException」が発生したことくらいはわかりますが、もう少し情報が欲しいところです。 そこで、「NSSetUnc

  • https://developer.apple.com/jp/devcenter/ios/library/documentation/CodingGuidelines.pdf

  • Rento83

    都会から生徒を受け入れる「島留学」を始めた。この春入学の「留学生」は31人。8月の島での見学会には全国から親子140人が参加した。 「島の最高学府を守れ」。島前の3町村長や住民らが08年に立ち上がり、高校の魅力化構想をつくった。通いたい高校にすれば生徒は増えるはず。「ピンチはチャンスだ」と考えた。いくつもの試みが「逆転の発想」から生まれた。 「小さいことはよいことだ」と10人前後の少人数習熟度別授業を始めた。「田舎は都会にはない自然や人のつながりがある」と地域に根ざしたカリキュラムをつくった。生徒は船のダイヤ改定案から、島の太陽光発電まで考える。「仕事がないから島に帰れない」ではなく、「仕事をつくりに帰りたい」人を育てようと、課題を解決する力をつける教育を目指した。 島にはコンビニもゲームセンターもない。「だからこそ工夫する力や粘り強さが磨かれる」と都会から生徒を受け入れる「島留学」を始め

  • イマドキっ子の Objective-C

    イマドキの流行に敏感なキミだったらもう知ってるかもだけど、今日はそういうのに鈍感なオジサンたちのために、今風の Objective-C について書いちゃうよ。もちろん互換性的な感じで、すぐに変えられないかもってコもいると思うけど、知っててもソンじゃないから、いま覚えとこう!それとこういうのって、けっこー変わっていくものだから、半年後とかにはもう流行後れになるから注意してね! インスタンス変数 Objective-C のインスタンス変数と言えば、ヘッダの @interface に書くというのがこれまでのルールでした。典型的な例として、以下のように書いていました。 @interface MyObject : NSObject { NSString *aString; } ... @end 今風には、インスタンス変数の宣言は実装部の @implementation に書きます。 @impleme

  • iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について – Zero4Racer PRO Developer's Blog

    iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール | Zero4Racer PRO Developer’s Blogの記事を読んでいただき、ありがとうございます。”アキラ”さんから、 オブジェクトは必ずプロパティにする、というのは、利便性を考えれば理解はできますが、 それはクラス設計者が楽をするためであって、カプセル化を無意味にする行為なので、それほどいい選択とは言えないと思いますねぇ。 という指摘を頂きました。これは、プログラムを正しくカプセル化する上で重要です。私もこれは非常に重視していますが、Objective-Cには、プロパティに、プライベート、パブリックの指定が出来ないので、一見、プライベートのプロパティが指摘出来ないように感じます。しかしちょっとの工夫で、実現することが出来ます。 コードで書くと、以下のようになります。 [sourcecode la

  • Re: Objective-C で AUTOLOAD (あるいは method_missing ) - terazzoの日記

    お題: http://unknownplace.org/memo/2011/12/05/1/ リンク先の実装だと引数の値が取得出来ないので、以下の制約付きで引数が取れるようにしてみた。 戻り値は常にid型 引数は全てid型 引数にnilを指定されたときはNSNullに変換 #import <Foundation/Foundation.h> @interface Foo : NSObject - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments; @end @implementation Foo - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments { NSLog(@"call:'%@' withArgumen

    Re: Objective-C で AUTOLOAD (あるいは method_missing ) - terazzoの日記
  • CALayerで3Dグラフィックス? - terazzoの日記

    ちょっと3Dグラフィックスやってみようかと思って、もしかしたら座標変換のライブラリはないかとドキュメントを見ていたら、Core Animationの関数を使ってアフィン変換・透視変換とかできる上に、そのまま描画もできるらしいということが分かった。 Core Animationプログラミングガイド: レイヤジオメトリと変換 Core Animationプログラミングガイド: Core Animationレイヤの配置 やってみた結論としては、がっつり3DやるならやっぱりOpenGLとか使った方が良いと思う。けど、簡単な図形や画像をちょっと俯瞰っぽく見せたい、ぐらいなら使えるかも。 ちなみにOSバージョンはSnow Leopard(10.6.6)です。 追記: これで立体迷路アプリ作ってみた 準備1. CocoaのクラスにCALayerを貼付ける とりあえず適当なサイズのウィンドウを表示させてC

    CALayerで3Dグラフィックス? - terazzoの日記
  • Bonjourを使ってiPhone同士で通信する(1) – NSNetService | yasnis.net

    同一wifi内のiPhone同士で通信しあうにはBonjourを使うと簡単にできるらしい。簡単にっていうのはアドレスの割当やらホストの解決、公開サービスの検索なんかを自動的にやってくれるみたいだけど、それ以外でも結構大変だったのでその記録。 主な手順としては、 サーバ側がNSNetServiceを使ってサービスを起動 クライアント側はNSNetServiceBrowserを使ってサーバとサービスを検索 見つかればNSInputStreamやNSOutputStreamを使ってデータをやり取り という感じで結構簡潔。 まずはプロジェクトの準備。新規プロジェクトをTab Bar Appricationから作成します。左のタブをServer(ServerViewController)、右のタブをClient(ClientViewController)として進めます。 ServerViewCont

  • iOS Advent Calendar 2011 5日目 / NSURLProtocolの使い方 : As Sloth As Possible

    どうも、「iOS Advent Calendar 2011」5日目担当のfaultierです。つい最近使ったのでNSURLProtocolネタで。 NSURLProtocolって何? Foundationフレームワークで最初から扱えるプロトコルはhttp、https、ftp、fileの4つ。これ以外のプロトコルでの通信をNSURLConnectionやNSURLDownloadなどで扱う場合や、特定のリクエストに限って特別な処理をしたい場合などに、NSURLProtocolを継承して登録することで使えるようになる。ちなみに、他のアプリからopenURLしたときにアプリを起動させるカスタムURLスキームとはまた別なので注意。こちらはアプリ内でURL Loading Systemを使うときにだけ影響するもの。 使い方 最低限必要なのは、+canInitWithRequest:、+canonic

    iOS Advent Calendar 2011 5日目 / NSURLProtocolの使い方 : As Sloth As Possible
  • Cocoaの日々: [iOS] iOS5から追加された新しい通知の有無を判定する

    例えば UIKeyboardWillChangeFrameNotification の通知を受け取りたい。普通に NSNotificationCenter へ登録すればいいのだが、iOS 4 でこれを実行するとクラッシュする。 この通知は iOS5 から導入された新しいもので iOS4 に無いのが原因。この通知名は NSString* const で定義されている。 // UIWindow.h UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); そこでこの定数の有無をチェックしたい。調べると Appleがドキュメントを出していた。 SDK Compatibility Guide: Using SDK-Based

  • NSOrderedSet と集合と順序と CoreData | Danceafford

    iOS Advent Calendar 2011 3日目です。 今日は iOS5 から新しく仲間になった中でも影が薄い子 NSOrderedSet を紹介します。 そもそも NSArray は使うけど NSSet は馴染みが薄いという人も多いと思いますので、まずは NSSet の復習から入ります。 NSSetと集合 NSSet は NSArray や NSDictionary と同じコレクションクラスで集合を扱うためのクラスです。 UNION(和集合), INTERSECT(積集合), EXCEPT(差集合) などの集合計算が得意で、ある集合に任意の要素がマッチするかどうかという判定が多い場面では有効なクラスです。 和集合:いくつかの集合に含まれている要素を全て集める NSArray *worldA = [NSArray arrayWithObjects:@"Kyoma", @"Kuri

  • [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note

    [iOS5] ARC (Automatic Reference Counting) : Overview 2011/11/16/|iOS|メモリ管理, iOS5, ARC iOS 5では数々の機能が追加されましたが、その中でも開発者の私たちにとって嬉しかったのはARC(Automatic Reference Counting)ではないでしょうか。そこで、ARCの概要から注意点まで、基的なところを何回かに分けてまとめていきたいと思います。 ARCとは? ARC (Automatic Reference Counting) とは、その名の通り、自動リファレンスカウンタ。リファレンスカウンタ方式のメモリ管理を自動で(正確にはコンパイラが)行ってくれるというものです。 ご存知リファレンスカウンタ方式のメモリ管理では、retain, releaseなどのメソッドを用いて生成したオブジェクトの保持状

    [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note
  • C言語も知らなかったけど、iPhoneアプリ開発が出来るようになるまでにお世話になった11冊! » SHINGOLOG

    C言語も知らなかったけど、iPhoneアプリ開発が出来るようになるまでにお世話になった11冊! 2011年8月24日 in iPhone, Objective-c 私がiPhoneアプリを作りはじめたのは、2009年の11月でした。C言語すらまともに使ったことがなかったわけですが、当時はまだインターネットでも開発についての情報が少なく、ほとんどは海外サイトをみて翻訳して調べるしか手がありませんでした。 ですので、最初はiPhoneアプリの開発を読みあさっていたわけですが、様々なを読むことで基的な知識を身につけることが出来ました。今回はiPhoneアプリ開発をご紹介したいと思います。 [基礎編] iPhoneアプリ開発の基礎 やさしいC プログラム経験が全くない方におすすめです。C言語のですが、オブジェクトやインスタンス、クラスについてなどなど、内容が読みやすく、基礎からしっかり

  • メモリ管理 - かみやんの技術者ブログ

    iPhone開発で、メモリ管理の基礎を社員に伝えることが増えてきたので、エントリとして書こう。 Objective-C基礎 メモリ管理の前にObjCの基礎として、メソッド呼び出しの話。 クラスのインスタンスaがmethodAをコールするときは、 [a methodA] と書く。このとき、aがnilだったときは、エラーではなく、コールされない。methodAに戻り値があるときは、それは、0やnilやNOが返る。ObjCでは、 void dealloc { if(a!=nil){ [a release]; } [super dealloc]; } は、気持ち悪いので、nilチェックはやめましょう。 なお、ObjCでは、動的にメソッドを差し替えることができ、コールの度にメソッドが存在しているかも確認しています。そのため、LL言語(ライトウェイト言語、スクリプト)のように柔軟な記述が可能です。そし

    メモリ管理 - かみやんの技術者ブログ
  • ホットキー

    MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard 「ホットキー」とは、アプリケーションが非アクティブでも処理できるキー(イベント)のこと。今作っている画面キャプチャキーで使いたいので調べてみた。 2つほど参考になるページが見つかった。Carbonイベントを使うようだ。 ホットキーを登録する(HDMT) Program Global Hotkeys in Cocoa Easily (Dustin Bachrach Blog) HDMT木下さんのページでは Cocoaで扱いやすいようにアレンジしてある。 情報が揃ったのでこれらを参考に自分で試してみた。 ソース:Shortcutkey.zip 実行すると右上のステータスバーに "SAMPLE MENU"が現れる。 この状態で Option + Command + スペースキー を押

  • LispとObjective-Cを融合させたプログラミング言語「Nu」0.9.0 リリース | スラド

    Objective-Cと Lispを融合させたプログラミング言語「Nu」のバージョン 0.9.0が 7月 2日にリリースされた(GitHubのコミット)。 NuはObjective-Cで実装されたオブジェクト指向のインタプリタ言語で、Lisp由来の文法と Objective-Cのクラス機構を備えているのが特徴。Mac OS Xの Cocoa APIや各種ライブラリにアクセスでき、OS Xのネイティブな GUIアプリの開発が可能。 Nuの歴史はまだ浅く、知名度も低いものの、作者はブログにて「Nuはそのバージョン番号やWebサイトのアクティビティから想定されるよりもずっと安定しており、重要なアプリケーションのプログラミングにも安心して利用できる」との旨を述べている。 Nu言語の日語の記事としてはCodeZineの「Nuで Mac GUIプログラミング Twitterクライアントを作ってみよう