オープンデータとプログラミング

iOS

Swift|変数の定義letとvarの違い

swift

Swiftでは変数を定義するときのキーワードに、letvarがあります。letvarには次のような違いがあります。

キーワード 意味
let 一度定義した変数の内容を変更しない let hogestring=”変更不可”
var 一度定義した変数の内容を変更できる var hogestring=”変更可”

varだけあれば、用は足りると思われるかもしれません。

letが用意されている理由のひとつは、「ソースコードが読みやすくなるから」でしょう。

letで定義された変数は、「変更されないんだな」と一目でわかりますよね。

iOS 8.3 脱獄 で使える50のアプリ

jailbreaking

TaiGによるiOS 8.3の脱獄アプリ、Cydia Substrateがアップデートされましたね。

脱獄によってどのようなことが可能になるのでしょうか。

脱獄アプリはたくさんあるわけですが、その中から面白いものをピックアップした動画がありましたのでご紹介しておきましょう。

この動画で紹介されているアプリは次のとおりです。

ちょっと試してみたくなりますね。

ついにiOS 8.3の脱獄が可能に。 iOS 8.4にアップデートするのは得策か!?

jailbreaking

TaiG脱獄ツールv2.1.3は、Cydiaアプリのインストールをサポートする中国ジェイルブレーキング・チームがリリースした新しい最新バージョンだ。
現在では、TaiG脱獄ツールv2.1.3が動作するのはWindwos PCのみだ。
Macしかなければ、Windowsの仮想環境で使用することも可能だ。

アップルは、iOS 8.4を6月30日にリリースした。
iOS 8.3が脱獄できるようになった今、脱獄iOS 8.3にするか、8.4に更新するを決めかねてしまうが、ユーザーがなぜiOS 8.3脱獄を行ってはならないかというなんらかの要因がここにある。

1.低いパフォーマンス

8.3の脱獄がiPhoneとiPadでCydiaアプリを楽しむためにユーザーに与えるiOS。
しかし、iOS 8.3脱獄の性能は脱獄前よりも悪くなる場合がある。
Tech Hive(http://www.techhive.com)によると、ユーザーは、バグ、非常事態、アプリの突然の破損、ランダムな再起動といった問題に遭遇する可能性があるという。

2.メーカー保証の終了

アップルは、脱獄した iPhoneとiPadに技術サポートを提供しない。
脱獄の実行は、デバイスの保証を失うことを意味する。
それでも、ユーザーはiPhoneまたはiPadでiOSの出荷時の状態に戻すことはできるので、アップルの保証を受けられなくはないが・・・

3.公式の最新版OSへのアップデートができない

一旦iPhoneまたはiPadを脱獄すると、アップルからiOS 8.4以上の最新OSへの更新サービスを受けることができなくなる。しかし、アップルからの最新版は手動で脱獄したデバイスにインストールすることができる。
しかし、一旦公式最新版がインストールされると、ユーザーは脱獄を楽しむことはできない。

4.アップルミュージックへアクセスできない

iOS8.4の最大の特徴はApple Music(新しいストリーミングミュージック・サービス)だ。
iOS 8.4へアップグレードしたユーザだけがApple Musicを使うことができる。

Cydiaアプリでjailbroken iOS 8.3を使い続けるユーザーは、Apple Musicを利用することができない。
しかし、多くの他の人気のストリーミングミュージック・サービス(Spotify、Pandora Radio)がある。

<ソース>

http://www.ibtimes.com/ios-83-jailbreak-now-possible-find-out-whether-upgrade-ios-84-or-continue-using-1988478
iOS 8.3 Jailbreak Now Possible, Find Out Whether To Upgrade To iOS 8.4 Or Continue Using

iOS 8.3 脱獄が来月にもリリース!?

images

iOS 8.3の脱獄を絶えず待っていたアップル・ユーザーにとって、それはすべて来月7月
までに起こることができました。しかし、実際に脱獄を世にリリースするかどうかはPANGUチーム次第だ。

最近、新しい脱獄がPANGUチームによってMOSEC 2015保安会議で明らかにされたと、テクノ・バッファローは報告している。

それと同時に、まだ確認がとれていいないが、PANGUチームがiOS 8.4の脱獄にも取り組んでいると広く考えられている。

アップルのオーナーは、今、脱獄に関してジレンマに陥っている。

iOS 8.3の脱獄が本当にリリースされるならば、iOS 8.4が出れば、結局、それは役に立たなくなる。アップルがいつ次のiOSをリリースするかについてまだなわからないが、それが月末の前に出るかもしれない。

もしそうなれば、全く役に立たない8.3の脱獄(リリースされるならば)となるだろう。

TaiGがiOS 9.0に集中することを選択した。iOS 8.3とiOS 8.4脱獄に取り組んでいる唯一のジェイルブレーキング・チームはPANGUだけだ。

iOS 9.0は、脱獄が最も難しいOSだと見られている。アップルがRootlessであるといっているように新しいセキュリティ機能を盛り込んでくる。

このセキュリティ機能が本当に有効であるならば、アップル端末の保護されたファイルにアクセスするのは難しいと、脱獄囚は知るだろう。

気が重い仕事のようだが、iOS9の脱獄はまだ可能性が残されています。
しかし、脱獄囚は、iOS 8.3と8.4の一つに追いつこうとしている。もはや、そのバージョンが出ることは驚きではないのだ。

iOSで広告が表示されなくなる日がくる!?

add_block

アップルが開発者のために公開した文書によると、iOSの将来バージョンでは、Safariの拡張機能をサポートするらしいです。
PC用ブラウザではおなじみの拡張機能ですが、この拡張機能の目的としてアドブロック(広告をブロックする機能)の実現が主な目的だと思われます。

広告は、利用者をいらいらさせることも多いため、平均的な利用者は、おそらくこの新機能についてはかなり満足するでしょう。広告へのアクセス情報が広告主のプロファイル構築のために収集されていることを知っているユーザはプライバシーの問題を気にするでしょう。アップル最高経営責任者(CEO)のTim Cookは、プライバシー保護を製品のセールスポイントにすることを明らかにしています。アップルはデータ収集事業とは一線を引くということでしょうか。広告を野放しにすることは、明らかにGoogleやFacebookのようなライバルに燃料を供給していますからね。

しかし、一方でインターネットの情報やアプリが無料で利用できるのは広告のおかげでもあります。GoogleやFacebookとのこれからの戦い方は要注目です。

海外での報道

海外での報道をいくつかピックアップしておきます。

http://www.macworld.com/article/2935143/why-ios-9s-ad-blocking-is-bad-news-for-google.html

Appleは公然と、今年の世界開発者会議での広告戦争を宣言。静かに劇的にモバイル広告は削減される。
iOSの最新バージョンにおいてはSafariで広告ブロックの拡張機能を開発できるようになる。
この動きは、モバイル広告に依存している企業や出版社にとっては大きな打撃だ。

Swift| AdMob組み込み時のエラー「Type “ViewController” does not confirm to protocol ‘GADBannerViewDelegate’」の対処方法

Xcode

こんにちは。

Type “ViewController” does not confirm to protocol ‘GADBannerViewDelegate’

import UIKit
import GoogleMobileAds

class ViewController: UIViewController {

	<中略>

	override func viewDidLoad() {
		<中略>

	        //AdMob
        	var bannerView: GADBannerView = GADBannerView();
        	bannerView = GADBannerView(adSize:kGADAdSizeBanner);
        	bannerView.adUnitID = "ca-app-pub-****************/**********";   //広告ユニットID
        	bannerView.delegate = self; //delegatを指定 ※ここでビルドエラー発生
        	bannerView.rootViewController = self;
        	self.view.addSubview(bannerView);
        	bannerView.loadRequest(GADRequest());
        	
        	
	}	
	
}

この問題は、ViewControllerクラスにプロトコルを指定するのを忘れているため発生します。

プロトコル、”GADBannerViewDelegate”を追加してやります。

class ViewController: UIViewController ,GADBannerViewDelegate { //※プロトコルを指定すればOK

	<中略>

	override func viewDidLoad() {
		<中略>

	        //AdMob
        	var bannerView: GADBannerView = GADBannerView();
        	bannerView = GADBannerView(adSize:kGADAdSizeBanner);
        	bannerView.adUnitID = "ca-app-pub-****************/**********";   //広告ユニットID
        	bannerView.delegate = self; //delegatを指定 ※ビルドエラーが解消!
        	bannerView.rootViewController = self;
        	self.view.addSubview(bannerView);
        	bannerView.loadRequest(GADRequest());
        	
        	
	}	
	
}

これでビルドエラーが解決しましたか?

iPhone 4S ユーザーを歓喜! 古いデバイスに最適化される iOS 9

普通なら、アップルからの新しいOSのリリースは歓迎する理由になるだろう。
しかし、あなたが最新のハードウェアを所有していなければ、かならずしも歓迎できるとは限らない。
アップルは、最新OSよりかなり遅れて複数OSの最新版(具体的にはiOS 4、iOS 7とiOS 8)をリリースしてきた。

この問題が常に以前のハードウェアで最も深刻な間、アップルの最新版方針は初期のOSに戻すことを不可能ではなくとも困難にするようになっている。

新機能の提供よりは、むしろ厳しくバグ修正とパフォーマンス向上を実現することに、iOS9が集中してきたと各メディアは報じている。

iOS9がiPhone4Sのような古いデバイスのために最適化されると主張することによって、
iOS9のパフォーマンス向上が際立つのだ。

iOS 9以前では、アップルの開発モデルは、最新のハード上にOSを搭載することになっていて、古い製品で動かない少数の特徴を取り除き、全てを完了したと言うことになっていた。アップルの新しいアプローチは、新機能を古いハードでテストして、最適化した後にだけ新機能を搭載するやり方になっているのだ。

OS発展がゼロサム・ゲームでなければならないことは誤解だ。そこに、より新しいハードがテーブルの上に残されるならば、古いハードは支持されるのだ。
たしかに、これは特定のケースで起こることがありえる:
10年以上経つPCのためにWindows XP互換性とセキュリティ・バグ修正の全ての範囲をもたらそうとすることは、間違いなくマイクロソフトの頭痛だった。

しかし、それはiOS界の現実を本当に反映しません、そこでアップルはちょうどサポートする少数の製品を備えています、そして、最も遅いものはデュアルコア・プロセッサー、メモリ量とよくよく理解されているハードとソフト機能だけを提供する。

iPhone 4Sが古くなる間、iPhone 4Sに対するサポートのニュースはiPhone 5と5cのためにも実を結ばなければならない。そして、それはかなりよりのニュースだ。

アプリを起動する際のパフォーマンス低下があるのでiOS 8を避ける人も多い。
また、UIも変わってしまう。— iOS 9がiPhone 5cの上でiOS 7と同程度のパフォーマンスをだしてくれることを望んでいる人も多いはずだ。

新OS(9to5MacはGalaというコードネームであると報告している)は、アップルの新しいサンフランシスコ書体を採用して、iMacに分割スクリーン・アプリ一覧を提供して、大量輸送機関方向をアップルMapsに加えることになっている。
伝えられるところでは、アップルはRootlessであると言われる「特徴」も加えている。
そして、それは管理者レベル・ユーザーさえ特定の保護されたファイルにアクセスすることができない。
これは信頼された実行ハードウェアを強いられた保安のプラットホームに広がる採用またはソフトウェア努力の更なる進化でありえました、しかし、管理者アカウントからさえ特定のファイルを締め出すことは脱獄者のために問題を含むことがありえました。

アップルは伝えられるところではiCloudを押す努力も進めていて、同期しているより多くのアプリケーションとコンテンツのためのバックエンドとして、そのシステムも使用する。

Swiftと「セイフティなWiFi」のような主要な特徴については、9to5の完全なレポートをチェックしてほしい。

Swift| AdMob組み込み時のエラー「Use of undeclared type ‘GADBannerView’」の対処方法

Xcode

こんにちは。

swiftでAdMobの組み込みでハマったのでメモです。

ビルドすると

var bannerView: GADBannerView = GADBannerView();

の箇所で次のエラーがでてしまいます。

Use of undeclared type ‘GADBannerView’

SDKは、

The Google Mobile Ads SDK for Android Version 7.2.2

です。

ソースコードは以下のとおり。

import UIKit

class ViewController: UIViewController {
	
	override func viewDidLoad() {
	
	//途中省略
	
	//↓で「Use of undeclared type 'GADBannerView'」発生
	var bannerView: GADBannerView = GADBannerView();	
	
        bannerView = GADBannerView(adSize:kGADAdSizeBanner);
        bannerView.adUnitID = "ca-app-pub-xxxxxxxxxxxxxx/xxxxxxxxx";//広告ユニットID
        
        //以下省略
        
      }
 }

GoogleMobileAdsをimportしてやればエラーは消えます。

import UIKit
import GoogleMobileAds //GoogleMobileAdsをimport

class ViewController: UIViewController {
	
	override func viewDidLoad() {
	
	//途中省略
	
	//↓エラーが消えます!
	var bannerView: GADBannerView = GADBannerView();	
	
        bannerView = GADBannerView(adSize:kGADAdSizeBanner);
        bannerView.adUnitID = "ca-app-pub-xxxxxxxxxxxxxx/xxxxxxxxx";//広告ユニットID
        
        //以下省略
        
      }
 }

わかってしまえば簡単ですね。

iOS 8.3の脱獄リリースはもうない??

http://en.yibada.com/articles/33881/20150520/ios-8-2-8-3-jailbreak-pangu-and-taig-working-on-ios-8-4-jailbreak-release.htm

伝え聞くところによると、iOS 8.2と8.3の脱獄リリースはないかもしれないらしい。
というのも中国のiOS脱獄エンジニアのPanguとTaiGがiOS 8.4の脱獄にシフトしているというのだ。

iOS利用者が8.3以前のバージョンのために脱獄を目にする可能性は低いという。
iCrackUriDeviceによれば、開発者のPanguとTaiG(iOS8の脱獄の開発者)は、iOS 8.2と8.3の脱獄を中止。今は脱獄の長命を確実にするために、iOS 8.4の脱獄に取り組んでいるとか。

脱獄開発者はiOS 8.4β版を動かしています。
有名なハッカー・ステファン・エセル氏(i0n1c)がiOS 8.4β版で制限のない脱獄を実現することができたので、「脱獄できる」と考えられている。

エセル氏はこの脱獄を「コンセプトの証明」と言い、単に個人の目的であるだけだった。
しかし、公式な確証がまだ前記のPanguとTaiGからはない。

一方、アップルはiOS 8.4の公式バージョンを延ばすかもしれない。
詳細な調査のため、そしてOSの全体的なパフォーマンスに影響を及ぼすバグと不具合をオペレーティングシステムから取り除くために。
アップルは、ベータ・テスターの開発者達にiOS 8.4の第3のベータ版をすでに提供している。

iOS 9のリリース日はiOS 8.4のローンチに依存するとGospel Heraldは報じている。
アップルは最初にiOS 8.4をリリースするはずだ。
そして、それはiOS 8の最後のバージョンになる。

iOS 9が6月8日にアップルのWorldwide Developers会議で延ばされるという大きな可能性がある。