ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Swiftにチャレンジしてみたが、結構ボロカスにやられました(;ω;)

スポンサードリンク

f:id:aipacommander:20141004181631j:plain
本日はアプリ開発をしてみました。


企画はすこし簡単なアプリのため
せっかくなんで、Objective-Cじゃなくて
Swiftにチャンレンジしてみた。


Appleが言うにはObjective-Cよりは簡単と
友達がいうには「Appleがこのタイミングで出したってことは
やっぱりObjective-Cは使いづらいんじゃね?」と


ということは・・・!
使いやすい言語に変身しているはず!
と、勝手に解釈する。


・・・そんなことはなかったがな(;ω;)

Xcode6をダウンロード

Swiftを使うには
Xcode6をダウンロードしなければいけません。


AppStoreからダウンロードして下さい。
また、すでにXcodeをインストールしている人は
恐らくですが、バージョンアップの通知がくるはず。
それに従いましょう。

実装してみた。


準備ができた私は下記ソースを記述しました。

//
//  ViewController.swift
//
//  Created by Commander Aipa on 2014/10/04.
//  Copyright (c) 2014年 Aipa. All rights reserved.
//

import UIKit;

class ViewController: UIViewController ,UIWebViewDelegate {
  
  var webview: UIWebView = UIWebView();
  let googleUrl: String = "http://www.google.com";
  
  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    
    self.webview.frame = self.view.bounds;
    self.webview.delegate = self;
    self.view.addSubview(self.webview);
    
   //ボタンを作成する記述
    var button :UIButton =
      UIButton(frame: CGRectMake(270, 590, 100, 50));
    button.backgroundColor =
      UIColor(red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0);
    button.addTarget(self, action: "btn:", forControlEvents:.TouchUpInside);
    button.setTitle("ホーム", forState: .Normal);
    button.setTitleColor(UIColor.blueColor(), forState: .Normal);
    
    //これで枠が作られ、少し角が丸くなる
    button.layer.cornerRadius = 10;
    button.layer.borderWidth = 1;
    
    //Viewに追加
    self.view.addSubview(button);

    //Googleに接続します。
    var url: NSURL =
      NSURL.URLWithString(googleUrl);
    var urlRequest: URLRequest = NSMutableURLRequest(URL: url);
    self.webview.loadRequest(urlRequest);
  }
  
  //多分UIWebViewのデリゲートメソッド。 「->」←返り値の書き方。キモい!
  func webView(webView: UIWebView!,
    shouldStartLoadWithRequest request: NSURLRequest!,
    navigationType: UIWebViewNavigationType) -> Bool {
    return true;
  }
  
  //ボタンがタップされたときの処理メソッド
  func btn(sender: UIButton) {
    var url: NSURL =
      NSURL.URLWithString(googleUrl);
    var urlRequest: NSURLRequest = NSURLRequest(URL: url);
    self.webview.loadRequest(urlRequest);
  }
}


WebViewでGoogleのトップページを読みこむ処理です。
また、ホームに戻りたい場合はボタンをタップすれば戻ります。


作ったイメージはこちら
f:id:aipacommander:20141004181637p:plain


非常に簡易的なソースだと思います。
・・・いかんせんここまでたどり着くのに3時間(--;


いまいち書き方にピンと来ません。
「!」「?」なんぞやこれ?


また、組み込みライブラリもよくわからない。。。
Objective-Cと同じなのかな?


この辺は公式ドキュメントを読むこむ必要がありそう。。。


うぅ。。。(;ω;)
やっぱりプログラムの初回はつらいお。。。orz


まぁ、でも初回なんで気にしないことにします(∩´∀`)∩ワーイ


Objective-Cをさわりはじめたころもこんな感じでしたし
今は苦しんで、後半に楽できるように勉強していきます。


とりあえず、目標はこの簡易的なアプリを
さっさリリースしてみます。
※誰もダウンロードしないでねwテスト用なんで



さぁーがんばろー(^^

2014.11.15 追記

今回この記事でサンプルを用意しましたが、昨日確認したら何故か動かなくなっていました。どうしてでしょう。


ちなみに、エラーコードが下記になります。

    //Googleに接続します。
    var url: NSURL =
      NSURL.URLWithString(googleUrl);


エラー内容

'URLWithString' is unavailable: use object construction 'NSURL(string:)'


色々調べているんだけど、出てくるのは車のSwiftと、stackoverflowのみ・・・orz


うむむ。。。もうちょうい調べてみるわ(^ω^ == ^ω^)おっおっおっ