Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
C#, C++, Objective-Cのラムダ(匿名関数)の基本的な使い方の覚え書きと、JavaSE7時点のラムダ相当のイディオムについての雑記。 (※ プログラムの作用に主眼を置いて、単純に、Lambda ≒ Closure ≒ Block ≒ 匿名関数 という認識で書いてます。) C#4.0のラムダの使い方 C#には、C#1.0のもとより関数ポインタ的なdelegateという言語的な仕組みがあって、 それに乗っかる形でC#4.0よりラムダがサポートされた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClosureCs { class Program { static void Main(string[] args) { // C#4.0
生存戦略しましょう! by Akkun on pixiv スマートフォンアプリ開発に従事している方は、案件によってC#(Windows Mobile、Windowsストアアプリ)であったりObjective-C(iPhone/iPad)であったり、Java(Android)であったり各プラットフォームによって様々な言語を使い分けられていると思います。 日本市場の場合は同程度iOSとAndroidの勢力が強いため、同じタイトルのアプリをそれぞれで動くようにObjective-CとJavaで書いているという方も多いのではないでしょうか。 2回も3回も同じ処理をそれぞれのプラットフォームごとに書きたくない、そのような状況におかれた開発者がいつも夢見るのがwrite once, run anywhereです。*1 プラットフォーム固有の機能やUIパーツが存在しているので、実際には1回書けばそれで全
ゲームプログラマ志望が福岡で叫ぶ 『絶望』プログラマーになりたい!!!!! あ、風のうわさで聞いた最近若者で流行っているトゥイッターなるものを始めてみました (・ト・) @toshi_desu_yo はい! 真面目に更新して行こうとぉ・・・・、、思います! iPhoneでアプリを作成する時に画像の描画をしますが、 一度に画面に出す画像の枚数が多くなってくると、思った速度が出ず に悩んだりすることが出てきます。(多分) そういう時にGPUをフルに使ってくれる OpenGL ES を使用するのですが、 「 むずい 」 「 めんどくさい 」 「 もういやだ!」 の 3M が襲いかかってきます。 OpenGL ES の敷居が高い!!(半年前のわたくし) と思われがちですが、実際そうでもないです。 ( 2Dの場合は ) 一個ずつ見ていくと初めての方でも意外に簡単だったりするものなので、 時間をかけ
久しぶりの投稿だわ。加えて久しぶりのプログラミングネタ、というより、なーんか苦労したんで忘れないようにメモ。 iOSプログラミングでOpenGL ES2 のテクスチャ関連を調べてみると意外と情報がまとまっていない。見つかったと思ったら、よくわからないのライブラリ使っていたり、コードが中途半端に抜けていたり、C++コードが混ざっていてそのままじゃ使えなかったりと、なんでこう使えないのが多いのかな?と思うほど。Android向けの方が結構まとまっている感がある。 iPhone 3GS からだったか、OpenGL ES2 が使えるようになったのは。困ったことにOpenGL ES1.xとは互換がないと言っていいほど違う。特に描画。ES2からシェーダなるものが導入され、これを使わないといけないらしい。ただ、シェーダもプログラミング言語で書かれるので、いろいろできそうではある。これは今後の課題かな。う
一つの関数内で容量の大きなファイルを読み込み加工する処理を連続して行っていたらメモリが足りなくなった。 ARC ではスコープを外れ(て参照カウンタがゼロになっ)たオブジェクトは、すぐに破棄されると思っていたのでしばらくハマった。 問題のソース(ARC使用) ローカルでもWebでも何でもいいけど、ファイルから無視できない程度の容量のデータの読み込みを繰り返す処理。 - (IBAction)buttonDownWithArc:(id)sender { NSString* path = @".../bigdata.img"; for (int i = 0; i < 10000; i++) { NSData* data = [NSData dataWithContentsOfFile:path]; [NSThread sleepForTimeInterval:0.5]; data = nil; }
JavaScriptCore.framework とは Mac/iOS アプリケーション内に JavaScript 実行環境を組み込める。 Objective-C クラスをエクスポートしたり、JavaScript で処理させて結果を取り出したりできる。 要は Lua みたいに JavaScript を組み込み言語として使えちゃう! 準備 MacOS SDK 10.9 または iOS SDK 7.0 以降が必要。 Xcode プロジェクトに JavaScriptCore.framework を追加する。 使い方 クラスの定義とエクスポートの指定 Vector2 というクラスを JavaScript から利用できるようにするには、JSExport プロトコルに準拠したプロトコルを定義し、ここにエクスポートするメソッドやプロパティを記述する。 @class Vector2; @protocol
[iOS 7] JavaScriptCore Framework を使った Objective-C と JavaScript の連携ができるようになった はじめに iOS 7 / Mac OS X 10.9 から Objective-C から JavaScript の相互連携ができるようになりました。どんな感じで連携ができるのでしょうか。 サンプルコード Objective-C から JavaScript の式 [C] // コンテキストを作成 JSContext *context = [[JSContext alloc] init]; // 計算 JSValue *result = [context evaluateScript:@"1 + 2;"]; // 結果 NSLog(@"1 + 2 = %d", [result toInt32]); [/C] JSContextクラスからJav
スマートフォンのその先へ コンシューマー向けHMD対応OS「VIKING OS」を発表 プレスリリース発表元企業:株式会社ブリリアントサービス 配信日時: 2013-02-26 10:30:00 株式会社ブリリアントサービス(本社:大阪市、代表取締役:杉本 礼彦)は、コンシューマー向けHMD(ヘッドマウントディスプレイ)に特化したオペレーティングシステム「VIKING OS」を発表しました。 http://www.brilliantservice.co.jp/viking/ 2013年2月25日から4日間、バルセロナで行われるMWC2013にて、開発中の「VIKING OS」のデモを実施します。 このOSはコンシューマーにHMDを広めることを目的としており、FreeBSDをベースにジェスチャー入力や音声認識など、直感的なインターフェイスが加えられています。 さらにソフトウェアの開発言語は、
@propertyによる、assign,retain,copyの際のそれぞれの振る舞いの違いを確認してみました。 assign #import <Foundation/NSObject.h> #import <stdio.h> // Textbook class @interface Textbook : NSObject @end @implementation Textbook - (void)dealloc { NSLog(@"Textbook(%p) will be dealloced.", self); [super dealloc]; } @end // Student class @interface Student : NSObject { Textbook *tb; } @property (assign) Textbook *tb; // 4. - (void)say;
ARC & Blocks を使ったときの循環参照を避けるための現実的なサンプル。
こんにちは。開発担当の金内です。 Xcode 4 は UI もすっかり変わりましたが、ビルドの要であるコンパイラもデフォルトが変更されています。その新しいコンパイラのキーワードが「LLVM」です。いまいち聞き慣れない方もいると思うので、今回はその LLVM について簡単にご紹介します。 ざっくりとした結論から言ってしまえば、Xcode における LLVM は従来のデフォルトコンパイラである GCC を置き換えるものです。LLVM には次のような特徴があります。 ・コンパイルが速い ・コンパイルされたコードが速い ・エラーメッセージがわかりやすい ・他のツールと連携しやすい いいことばかりですね。 しかし、コンパイラは要となる重要なコンポーネントなので、互換性などへの配慮から、Apple は GCC からの移行を少しずつ段階的に進めています。 実際、Xcode 4.0 でのデフォルトは完全に
Xcode3 から Xcode4 に乗り換えていろいろプロジェクト設定を調整していた時に、選択できるコンパイラーがいくつかあるのが気になりました。 "GCC" といえば Linux でお馴染みのコンパイラですけど、それとあわせて Xcode では "LLVM GCC" と "Apple LLVM compiler" というものも選択できるようになっています。 これらについて少し調べてみたところ、なにやら GCC と比べて Apple LLVM compiler の方が、同じコードでもビルドしたバイナリの実行速度が速くなったり、コンパイルの速度が速くなったり、コンパイル時のエラー情報も判りやすく出力してくれるとのことでした。 ちなみに "LLVM GCC" というのは、構文解析を GCC で行うことで、互換性を高めようとしているもののようです。 なかなか良さそうな感じだったので、試しにこれま
たまたまDeveloper Centerで見かけたもの。引数不要、戻り値はUIImageと、使いやすそうなので載せておきます。 (自分ではまだ試してないのですが・・・) http://developer.apple.com/library/ios/#qa/qa1703/_index.html%23//apple_ref/doc/uid/DTS40010193 - (UIImage*)screenshot { CGSize imageSize = [[UIScreen mainScreen] bounds].size; if (NULL != UIGraphicsBeginImageContextWithOptions) UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0); else UIGraphicsBeginImageCon
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
SenTestingKitのアサーションの書き方について。 参考記事 iOS Development Guide: Unit-Test Result Macro Reference STFail 無条件でテスト失敗。 STFail(@"失敗時に表示されるメッセージ"); STAssertEqualObjects オブジェクトAとオブジェクトBが等しくないと失敗。等しいかどうかはNSObjectプロトコルで定義されるisEqual:での結果で判定される。 STAssertEqualObjects(objectA, objectB, @"失敗時に表示されるメッセージ"); STAssertEquals 2値が等しいかどうか。 STAssertEquals(valueA, valueB, @"失敗時に表示されるメッセージ"); STAssertEqualsWithAccuracy 2値の差が指定
iOS 5が公開されて、Dev CenterもWe’ll be back soon になっています。 iOS5 NDA will be gone soon! 記念に、iOS 5 のプログラム面での変化、ARCを使った簡単なサンプルをGitHubに登録しましたのでご覧下さい。 追記:うーねこ? (@ne_ko_)さんからの指摘であった、”クラス変数”という間違えた記述を、”インスタンス変数”という正しい記述に変更しました。 tomohisa/EasyBlockCallback – GitHub ARC は、メモリ管理でこれまで手動で行っていた、 Retain Release Autorelease を自動でコンパイラで行うようにさせる方式です。一定のルールに従う必要がありますが、メモリ管理に関する、Retain、Releaseを書かなくてよくなります。このサンプルには、ARCを使っているプロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く