Tag Archives: プログラミング言語

Goを試してみた

0
Filed under プログラミング言語
Tagged as , ,

ちょっとした時間ができたので、前から気になっていたGo言語を試してみました。
まずは、インストール。
golang.jp – プログラミング言語Goの情報サイト
ここに、日本語情報があるけど若干が古いので、英語のオリジナルサイトの方を参考にしました。
The Go Programming Language
インストーラは下記ページからダウンロード出来ます。
Downloads – The Go Programming Language
Mac OS X用の「go1.3.darwin-amd64-osx10.8.pkg」をダウンロードしました。
ダウンロードしたファイルをダブルクリックするとインストーラが起動するのでそのままインストールできます。

go gopher(←Goのマスコットで go gopherというらしい)

バージョンを確認してみる

インストール後はターミナルで作業できるようになりますので、まずはバージョンを確認してみます。

$ which go
/usr/local/go/bin/go
$ go version
go version go1.3 darwin/amd64

最初のビルド

次に、適当なエディタ(私の場合Sublime Text)で下記のようなソースを書いてみました。実行は、go runでできます。

$ subl main.go
$ cat main.go
// main.go
package main
 
import "fmt"
 
func main(){
	fmt.Printf("hello, world\nGO言語!\n")
}
$ go run main.o
hello, world
GO言語!

文法もそんなに変なクセはなさそうなので、パッケージの内容を覚えれば大丈夫そうですね。

もうちょっと

ついでに、関数とループを試してみました。

// second.go
package main
import "fmt"
 
func myCalc( a int, b int ) int{
	return a+b
}
 
var myVar = 1200
 
func main(){
	fmt.Println("いろいろやってみる!")
	for i:=0; i<10; i++ {
		fmt.Println( "計算:", myCalc(myVar,i) )
	}
}

上記コードを実行すると次のようになります。

$ go run second.go 
いろいろやってみる!
計算: 1200
計算: 1201
計算: 1202
計算: 1203
計算: 1204
計算: 1205
計算: 1206
計算: 1207
計算: 1208
計算: 1209

ビルドしてみる

あと、goの特徴の一つがコンパイルできる言語でもある、ということも試したかったので、コンパイルしてみました。
go runの代わりに、go buildを行うだけで実行ファイルが生成されます。

$ ls	// ビルド前
main.go
 
$ go build main.go	// ビルド
 
$ ls	// ビルド後
main		main.go
 
$ main	// 実行
hello, world
GO言語!

とりあえず今日のところはここまで。

「詳細! Objective-C iPhoneアプリ開発 入門ノート」読了

0
Filed under iOS SDK, Objective-C, プログラミング言語,
Tagged as , , ,


上記ツイートを見て早速応募したら選んで頂けたようで、送られてきました!
ありがとうございます!!
ということで、レビューを掲載します。
詳細! Objective-C iPhoneアプリ開発 入門ノート
帯の「やれる!学ぶことをためらうな!」という言葉が熱い!
テンション上がります!!!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

私の視点

自社企画、他社の受託等、いろいろなiOSアプリを作ったりしていて、ある程度の開発に関する知識はあるつもりです。
が、この夏から、RainbowApps川越校の講師をやらせていただいて、その準備や授業をやる度に、まだまだだなー、と思うことが多々あります。
特に、自分よりも他の人、初心者向けにどうやってプログラムを教えるか、ということには一番興味があることといっても過言ではない状態で、そんな中、本書はどのように進めているのか、ということを興味深く読まさせて頂きました。

淀みない流れ!

著者の大重氏は定期的にアプリ開発の講座もやっておられます。

その講座で得られた知見が惜しみなく注ぎ込まれていると感じられる内容でした。
序盤のXcodeの説明(PART1)から一旦C言語の説明まで戻り(PART2)、そこから少しずつ積み上げていくところとか非常にわかりやすいのではないかと。
内容は丁寧ですし、テンポがいいのも飽きさせないですね。

プログラムって難しい

やっぱりプログラムって難しいと思うのはPART3。
配列等の説明をしている章なのですが、これらをどう教えるのか、というところにも個人的に興味がありました。その後の説明でOutlet Collectionとか出てくるからここに持ってきたのかもしれませんが、初心者は飛ばしたほうが良いかもしれない、ということ。
ただ、初級以上の方は得られることが多い章となっていますので必読。

内容は最新技術!

内容が最新技術に追随しているのが素晴らしいです!
「よく知っている人=昔からの知識を持っている人」なのですが場合によってはその古い知識のまま書かれた書籍もよく見ます。
しかし、本書は最新技術/仕様のみで書かれています!
ARC前提、iOS5以上は当然、という感じですのでiOS4.xで使えない仕組みとかもありますが、今更それをサポートするのも時間の無駄ですので、本書の方針には賛成です。
結構知らないコネタも満載で、中級者以上でもさらっと目を通すと、2つ3つは「え、こんなのあったんだ!」ということがあるかと思います。
個人的には、p.237の「UIAlert のalertViewStyle」が大きな驚きでした。
iOS5で追加された機能のようですが、UIAlertに入力エリアが付いたものが標準でサポートされています!

ということで、初級者〜中級者にオススメです!


[AD]

↓大重氏はもともとFlash界隈で有名な方ですね。

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

↓どういう内容か気になります!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

Objective-Cで一番簡単なプロパティ設定(w/ ARC)

0
Filed under Objective-C
Tagged as , ,

なんか、最近のObjective-Cでは、次のような宣言で使えるようなので、まとめておきます。

ARCで楽々プロパティ!

iOS 5以降で、ARCを使っている前提ですが、次のようなコードでプロパティ宣言出来て、問題なく動作するのです。

1
2
3
4
5
6
7
8
// Foo.h
#import <UIKit/UIKit.h>
@interface Foo : NSObject
 
// 外部から見えるように、ヘッダーに宣言.
@property	NSDictionary* dicInfo;
 
@end

これだけで使えるようなのです!
実装側には何も記述する必要はなく、使用する場合には(実装側(Foo.m)で使う場合にも) self.dicInfo としアクセスします。

これはObjective-C 2.0の仕様なのかな。
それともARCの恩恵?
よく分からなくなってきたけど、2013年、今はこれで出来ます!

retainとか、なんだとかもう書かなくていいんですよ!
ソー、シンプぅ!!

敢えて内部用変数名を定義する

「内部では、直接アクセスしたいよー」という時には、
実装側(Foo.m)で下記のように記述します。

1
2
3
4
5
6
@implementation Foo
 
@synthesize dicInfo=_dicInfo;
 
// ..
@end

上記のように記述しておけば、実装側(Foo.m)内では、 _dicInfo でアクセスできます。
でもねー、もう、あんまりメリットないし、これはやらなくてもいいかな。

ハードルが下がった!

初心者向けとかだったら、このブログのようにウダウダと説明するんじゃなくて、「ヘッダーで宣言(w/定義)すれば使える」と断言しても殆どの場合問題無いんじゃないかと。

ということで、
いつの間にか、かなりiOSアプリ制作のハードルが下がっている!!というお話でした。


[AD]

↓オープンソースライブラリが盛り沢山!とりあえず手元に1冊必須!

iOSオープンソースライブラリ徹底活用

著者/訳者:菊田 剛

出版社:秀和システム( 2012-12-17 )

定価:

Amazon価格:¥ 18,098

単行本 ( 259 ページ )

ISBN-10 : 4798036277

ISBN-13 : 9784798036274


↓Unityやるならこの一冊!実際に購入し、読みました。良書です!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

JSONKitからNSJSONSerializationに移行

0
Filed under iOS SDK, Objective-C
Tagged as , , , , ,

iOS 5から、NSJSONSerializationApple Reference)というJSONを扱う機能が追加されています。
iOS 5がリリースされたのが2011年の10月12日。
iPhone 4S、iPhone 5なら最初からiOS 5なので、Torques Inc.では、これからのバージョンアップでは、iOS 5以降をサポート対応OSのとしても良いかと考えます
json160

JSONKitからNSJSONSerializationへ

ということで、JSONKitを使って読み込んでいたコードを変更することにしました。(JSONKitはARCに非対応ですしね!)
思っていた以上に簡単で、本当に下記のようなコピペでうまく動作しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// with NSJSONSerialization
NSData*  data     = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError* error    = nil;
NSArray* jsonData = [NSJSONSerialization JSONObjectWithData:data
    options:0
    error:&error];
 
/*
// with JSONKit
JSONDecoder* jsonDecoder = [JSONDecoder decoder];
NSArray* jsonData    = [jsonDecoder
    objectWithUTF8String:(const unsigned char *)[jsonString UTF8String]
    length:[jsonString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
*/

上記コードで、NSArray* としている箇所は、NSDictionary* の可能性もあり、それは、jsonの内容によって決定します。
どちらの値で来るのか不明ならば、idで取得してコードで判定しましょう。

1
2
3
4
5
6
7
8
9
10
id jsonData = [NSJSONSerialization JSONObjectWithData:data
    options:0
    error:&error];
 
if( [jsonData respondsToSelector:@selector(objectForKey:)] ){
 // jsonData is NSDictionary*
}
else{
 // jsonData is NSArray*
}

しかし、iOS/iPhoneユーザーはOSアップデート率が高いから、本当に新機能を使いやすいですよね!
(An某roidとは大違い)


[AD]

↓最強のお勧めスタイラス Su-Pen(スーペン)!

iPad/iPhone用スタイラスペン(タッチペン) Su-Pen P170M-AS

iPad/iPhone用スタイラスペン(タッチペン) Su-Pen P170M-AS

定価:¥ 2,980

カテゴリ:Personal Computers


↓買ってみたら、本当に良書!初心者から経験者までお勧め!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。