Labs

<< 最初 < 前ページ 次ページ > 最後 >>
iOS のトピック一覧 条件クリア
icon 2015/09/17 iOS9でHTTP通信エラー
iOS9からNSURLConnection/Sessionのドメインポリシーが変更になった模様
※App Transport Security(ATS)
デフォルトでHTTP通信するとデータ取得できない

対策としては、
- 設定を無効(NSAllowsArbitraryLoads)
- 例外ドメイン追加(NSExceptionDomains)

の2通りあり、info.plistに設定する

設定を無効


ATS
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

例外ドメイン追加


<key>NSAppTransportSecurity</key>
<dict>
     <key>NSExceptionDomains</key>
     <dict>
         <key>yoo-s.com</key>
         <dict>
             <key>NSIncludesSubdomains</key>
             <true/>
             <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
             <true/>
             <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
             <false/>
         </dict>
     </dict>
</dict>
icon 2014/07/14 [Swift]入門
「Objective-C」とは全くことなる言語仕様「Swift」が登場しました。

基本はスクリプト言語仕様で理解はしやすそうですが、iOSフレームワーク・ライブラリを利用する事になるので、アプリを完成するには、結局「Xcode」「Objective-C」の知識は必須かな?

とは言え、まずは「Siwft」の文法を理解しようかと。

変数定義(mutable)


var name = "yoo";

定数定義(immutable)


let title = "Blog";
//title = "blog";  //再代入できない

リテラル定義


let age = 20; //Int型
let version = 1.1; //Double型
let title = "blog" //String型

明示的型定義


let tax:Float = 0.08;
let mile:Double = 100;

計算式


Stringを「"\(式)"」で連結できる。
let version = 1.1;
let versionString = "version \(version)"; // version 1.1

タプル


let yoo = ("Yohei Yoshikawa", 1975);
let (fullName, birthdayYear) = yoo;
println(fullName);
println(birthdayYear);

var yoo = (fullName: "Yohei Yoshikawa", birthdayYear: 1975);

Array定義


var citis : String[] = ["Tokyo", "Osaka", "Nagoya"];
citis.append("Sapporo");

Dictionary定義


var countries = ["JPN" : "Japan", "USA" : "America"];
let oldCountry = countries.updateValue("JAPAN", forKey: "JPN");
let country = countries["JPN"];

Enum


Enumに関数を埋め込み処理できる
enum city{
    case Tokyo, Osaka, Nagoya, Sapporo, Fukuoka, Yokohama, Sendai
    func region() ->String {
        switch self {
        case .Tokyo, .Yokohama:
            return "Kanto"
        case .Nagoya:
            return "Tokai"
        case .Osaka:
            return "Kansai"
        case .Fukuoka:
            return "Kyushu"
        case .Sendai:
            return "Tohoku"
        default :
            return ""
        }
    }
}

var currentCity = city.Nagoya;
println(currentCity.region());

if制御


    func isAdult(age:Int) -> Bool {
        if (age >= 20) {
            return true;
        } else {
            return false;
        }
    }

for制御


        let levels = [
            "level1": [1, 2, 3, 4, 5, 6],
            "level2": [7, 8, 9, 10, 11, 12],
            "level3": [13, 14, 15, 16, 17],
        ]
        for (key, level) in levels {
            println(key);
            for value in level {
                println(value);
            }
        }

        for i in 0..5 {
            println(i);
        }

        for i in 0...5 {
            println(i);
        }

        var rate = 3;
        var total = 1;
        for _ in 1...5 {
            total *= rate;
            println(total);
        }

While制御


        println("while");
        var i:Int = 5;
        while (0 <= i) {
            println(i);
            i--;
        }

Optional


「nil」を代入可能にする
var title2:String? = "Swift";
title2 = nil;
println(title2?);
println(title2!); //nilの場合実行エラー

関数デフォルト値


func calculate(price: Float , tax: Float = 3) -> Float {
    let totalPrice = Float(price) * tax;
    return totalPrice;
}

関数可変長引数


var string = concatString("A", "B");
println(string);

    func concatString(values: String...) -> String {
        var string = "";
        for value in values {
            string += value;
        }
        return string;
    }

型の関数拡張


extension Double {
    func km() -> Double {return self * 1.609344}
}
let mile = 100;
let km = mile.km(); //160.9344
icon 2014/03/07 [iOS7]ステータスバーのスタイル
iOS7のUIが大幅に変更されて、デザインに苦労したりします。
個人的な感想から言えば、iOS6はきって(シェアからしても)、iOS7用で作成した方がいいような気がします。

さてステータスバーもiPhoneのフルスクリーンに重なったり、デフォルトの色が黒だったりと頭が痛いです。

UIApplicationのsetStatusBarStyleで、ステータスバーのスタイルが変更できるみたいな記載がありましたが、Storyboardとかで画面遷移するとどうもその限りではないようです。

アプリケーションにsetStatusBarStyle


[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

なぜか、Stoarybordの「Status Bar」を設定しても変更できませんでした。
という事で、

UIViewControllerのpreferredStatusBarStyleを利用


- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
どうやらこの方法が確実なようです。
スタイルを統一したい場合は、preferredStatusBarStyleを実装した親クラスを各UIViewControllerに継承しやれば良いかと思います。

ステータスバーの種類


typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
    UIStatusBarStyleDefault                                     = 0, // Dark content, for use on light backgrounds
    UIStatusBarStyleLightContent     NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds
    
    UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
    UIStatusBarStyleBlackOpaque      NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
};
<< 最初 < 前ページ 次ページ > 最後 >>

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ