忍者ブログ
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


さぁ、また、発表会ですね。
今回はどんなものが出てくるのか?
事前予想以外のものが出てくるのを期待しているが、最近のAppleは、あまり予想外のものが無いから大きな期待は出来ない。
それども、ついつい見てしまう。
何れにしろ、何が出てくるのか楽しみだ。

今回は当然iPadの新型と、MacOSのリリースはほぼ確定だろう。
Apple Payもサービス開始となるのかな。
それ以外に何が出るのだろう。

相変わらず、AppleTVの更新に期待しているが、事前情報がほぼ出ていないので、期待できないのかも。
iPadの12インチモデルなんかも言われているが、ほんとに出るのかなぁ。
Mac miniやiMacの新型は、少しだけ除法が出てきるので期待できるが、MacBookの新型(12インチ?)は、ほんとに出るのか?
これが本当に出てくると、内容次第では買ってしまいそう。
最近は、Macを持ち歩いて作業する事が増え始めたので、15インチのMacBookProは重い。
バランスのいいモデルガ出れば買い替え時のような気がしている。

それでは、実装を進めながら、開始を待つ事にする。

拍手[0回]

PR

iOS8の対応を書いていこうと思っていたが、よく考えると、そんなにたくさん分けるほどの事をしていなかった。
 その為、2回目だが、その他になる。
しかも、その内容は、既に書かれている内容をそのまま入れただけなので、そこの紹介。

iOS7 と iOS8 の、両方に対応したアプリを作る
ここを参考に、残りを全て対応した。
それだけなのだが、時間がかかってしまった。

上記のページでは、「UIAlertView」になっているが、「UIActionSheet」も同じ。
「preferredStyle」に設定されている「UIAlertControllerStyleAlert」を「UIAlertControllerStyleActionSheet」へ変更することで、アクションシートが表示される。
他の使い方は全く同じ。 必要な分、ボタンを追加すればよい。

たったこれだけなので、本当はもっと簡単に対応できるはずであった。
ここで、処理をまとめる事を考えてみたのだが、結果的に断念し、そのまま書く事にした。
時間をかけて考えた結果、あきらめてそのままという、最も効率の悪い方法になってしまった。
(良い方法を考えた方は是非教えてほしい)

これだけだと、あまりにも内容が無いので、個人的に躓いた部分を書いておく。

Alertを置き換えたのだが、表示されないケースがあり、暫く悩んでしまったが、単純なミスだった。
UIPopoverで表示させている部分を選択したときに表示させるAlertを使用していた。
iOS8からは、UIPopoverが、単純なUIパーツから、「UIViewController」となっている為、表示場所をきちんと指定しないと行けない。
ここに気がつかずに、「self」を指定してしまい、おそらく、UIPopoverの後ろに表紙させていた。
ここを、最前面にきているViewを指定する事で、問題なく表示された。
UIの操作にあまり慣れていない為に、こんな事にすら気がつかなかった。

一応、これらを入れる事でiOS8の対応は終わったので、既に気がついている不具合の対応を行ってから申請を行う予定。
さらに、まだ、対応したのは1つ目のアプリのみなので、他のアプリも同じものを入れていく必要がある。
まだまだ、先が長い気がしてしまう。

拍手[0回]


ずいぶん遅くなっている感じもするが、iOS8対応がだいぶ進んだので対応内容を少しづつ書いてこうと思う。
結構よく使うUIが変更となった為、ある程度処理をまとめる事が出来ないか考えていると時間がかっかた。
まずは、「UIPopoverController」で行った対応内容。

既にたくさん情報が出ているように、「UIPopoverController」が使えなくなり、それに置き換えるように、「UIPopoverPresentationController」を使う事になった。
さらに、iPhoneでも使えるようになったので、iPhoneでの表示に無理矢理感が無くなった。
当然、iOS8以前では使えないので、バージョンによって処理を分ける必要が出てきた。
その辺りを考えて処理をまとめて下記のようなものを作った。

// Popoverの初期化
-(UIPopoverController *)uipopoverViewInit:(UIViewController *)mainView addView:(UIView *)addView sourceView:(UIBarButtonItem *)sourceView
{
    UIPopoverController *popoverView;
    
    if ([UIPopoverPresentationController class]) {
        // iOS バージョンが 8 以上で、UIPopoverPresentationController クラスが利用できる場合
        CGSize screenSize = [[self mainScreen] bounds].size;
        UIView *backView = [[UIView alloc] init];
        backView.frame = mainView.view.bounds;
        backView.backgroundColor = [UIColor blackColor];
        backView.alpha = 0.3;
        backView.hidden = YES;
        [mainView.view addSubview:backView];
        [mainView.view addSubview:addView];
        addView.center = CGPointMake(screenSize.width/2, (screenSize.height/2)-30);
        mainView.modalPresentationStyle = UIModalPresentationOverFullScreen;
        UIPopoverPresentationController *popPC = mainView.popoverPresentationController;
        popPC.barButtonItem = sourceView;
        popPC.permittedArrowDirections = UIPopoverArrowDirectionAny;
        popoverView = nil;        
    }else{
        // iOS バージョンが 8 以前で、UIPopoverPresentationController クラスが利用できない場合
        mainView.view = [addView initWithFrame:addView.bounds];
        mainView.contentSizeForViewInPopover = addView.bounds.size;
        popoverView = [[UIPopoverController alloc]initWithContentViewController:mainView];
    }
    addView.hidden = YES;
    
    return popoverView;
}

// Popoverのを開く
-(void)uipopoverViewOpen:(UIViewController *)openView sourceView:(UIView *)sourceView popoverView:(UIPopoverController *)popoverView controller:(id)controller
{
    if ([UIPopoverPresentationController class]) {
        // iOS バージョンが 8 以上で、UIPopoverPresentationController クラスが利用できる場合
        UIView* backView = [openView.view.subviews objectAtIndex:0];
        
        backView.hidden = NO;
        backView.alpha = 0.3;

        [controller presentViewController:openView animated:NO completion:nil];
        
        // 背景をタッチしたら、Popoverを隠す
        UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: controller action:@selector(closePopoverView:)];
        [backView addGestureRecognizer:gestureRecognizer];
    }else{
        // iOS バージョンが 8 以前で、UIPopoverPresentationController クラスが利用できない場合
        [popoverView presentPopoverFromRect:CGRectMake(sourceView.frame.origin.x + (sourceView.frame.size.width / 2),
                                                       sourceView.frame.origin.y + (sourceView.frame.size.height / 2), 0, 0)
                                     inView:controller.view
                   permittedArrowDirections:UIPopoverArrowDirectionAny
                                   animated:YES];
    }
}

// Popoverのを閉じる
-(void)uipopoverViewClose:(UIViewController *)closeView popoverView:(UIPopoverController *)popoverView
{
    if ([UIPopoverPresentationController class]) {
        // iOS バージョンが 8 以上で、UIPopoverPresentationController クラスが利用できる場合
        UIView* backView = [closeView.view.subviews objectAtIndex:0];
        
        backView.hidden = YES;
        
        [closeView dismissViewControllerAnimated:NO completion:nil];
    }else{
        // iOS バージョンが 8 以前で、UIPopoverPresentationController クラスが利用できない場合
        [popoverView dismissPopoverAnimated:NO];
    }
}

-(void)closePopoverView:(id)sender
{
    // Popoverを閉じる
    [self uipopoverViewClose:closeView popoverView:nil];
}

こののように初期化、開く処理、閉じる処理をまとめたものを作った。
そして一番下のものが、背景部分をタッチした時に画面を閉じる処理。
これを行わない場合、表示させたpopoverの欄外をタッチしても何も起きない。
uipopoverの場合は、自動で閉じる処理が行われるようになっていたが、今回からは自分で実装する必要があるらしい。
その為に、このような処理まで新規に追加する必要がある。

これらを、セットで呼び出す事で、コールする側ではiOSのバージョンを意識する必要が無い。
使う場所では、初期化、開く、閉じるの3行のみですむ。
何カ所もある場合には、かなり有効に感じる。
ここまではよかったのだが、少し、今までと変わってしまったところがある。
表示位置の指定が、いまいちよく分からないのだ。

もともと、popover自体が、barbuttonitemにくっついて表示するようになっていて、今回も同じだが、指定の仕方で、好きな位置に表示させる事が出来ていた。
しかし、今回は、自由に指定する事が出来ていない。
パラメータを見ていろいろと試したが、結局分からなかった。
これについては、一通り対応が終わってからもう一度調べてみる必要がありそうだ。

今回は、ひとまず、真ん中に表示するけど、これでOKにする事にした。

まだ、全ての確認が終わった訳ではないので、間違いがあるかもしれませんが、参考になればよいです。

拍手[3回]


遅ればせながらiPhoneをゲットしました。

これだけ見ると、なんで?と思われるかもしれない。
新型のiPhoneの販売が始まって3日目で、特別早く入手した訳でもないが、遅い訳でもない。
まぁ、一般的には、早めに入手した方に貼るのではないかと思う時期。
当然、今更旧型となってしまった、5s/5cではなく、iPhone6を入手。

なぜ遅ればせながらかというと、実は今回始めてのiPhone。
iOSアプリの開発を行っているのに、iPhoneを持っていなかった。
テストには、iPod touchとiPadを使って行っていた。

実際、iPhoneでなければ分からない事というものはあまりなく、どうしても必要な状況にはならなかった。

しかし、今回のiPhoneは画面サイズと解像度が変わってしまった。
さらに、簡易iPhoneともいえるiPod touchの発売が無い。
今回ばかりは、開発するには無いと何かと不都合が出てきてしまう事が明らか。
そのため、今回は、購入する事を決めていた。

自分の場合、いろいろな状況からAUにしたのだが、店舗での予約も行っていた。
予約開始後、直に予約知る事は出来なくて、日曜に予約をしていた。

そして、発売から2日経ち、大型量販店では、在庫がある様子。
予約した店舗の確認したところ、まだ入荷してないし、いつくるかも分からないと言われた。
仕方なく、大型量販店に行ってみたところ、ものはあるけど、今日中に手続きが出来るかが分からないとのこと。
いつ手続きに入れるかも分からないし、そもそも、手続きできるか分からないがそれでもいいかと聞かれ、待つ事にした。
その結果、意外と早く1時間少し待った後に呼ばれ、手続き開始。
晴れて初めてのiPhone入手となりました。

それにしても、AUの端末の割り振りはどうなっているのだろう。
予約した方が遅く、予約なしの方が早くかえてしまう現実。
ネットで見ると、同じような書き込みがたくさん見つかる。
全国で同じようなことが起きてる事が分かる。
もう少しなんとかならなかったのだろうか?

まぁ、それはともかく、最新のiPhoneをゲットしたので、既にリリース済みのアプリの確認から行う予定。
シミュレータで簡単な確認は行ったが、実際の端末でなければできな粉とがいくつかある。
その辺りを中心に確認し、不具合対応をしていく事になるのだと思う。

拍手[0回]


xcode6が、デベロッパサイトでGMの文字が消えたバージョンになっていたので、入れてみた。

今回、なぜか気になった為に前バージョンを残してみた。
ここを見に来るような人は、ほとんどの人は使って見ていると思うので当たり前かもしれないが、気になった事を書いてみる。

まずは、シミュレータから、iOS6系が消えている。
これには、正直参った。
まだ、サポートの対象から外す気がなかったバージョンなので、いかに確認していくか悩んでいる。
もう1つが、既にリリースしているアプリを、xcode6で単純にビルドして、iOS8のシミュレータで動かすと、全くだめだった。
今までも、iOSのバージョンアップでSDKが変わった時には、同じようなことが起こっていた。
その時も、結構焦ってしまったが、既にリリースしているバージョンでは、あまり問題は出ない。
どのSDKを使っているかが重要なので、古いSDKを使ったものは問題なく動くようだ。

ただし、xcode6ではSDKとして選択できるものがiOS8にしか選べない。
これでは、既にリリース済みのものに何か問題がないかの検証が出来ない。
前回のアップデート時は、リリース済みアプリがまだ少なかった事もあり、直に対応して、アプリのバージョンアップも行った。
しかし、今回は、アプリの数も多いし、少し予想していないような部分も動かなくなってしまったようだ。
(この辺りは、対応していく時にまた書きたいと思う。)
とりあえず、リリース済みのアプリで最低限の動作が出来るのかを軽くチェックする為の方法を考えた。

結果的には、xcode6にSDK7を入れてしまう事だった。
これは、xcode5でSDK6を使うやり方が、検索するとたくさん出てくる。
それをそのままバージョンを読み替えて対応してみただけだ。
参考ページ

この方法で、SDK7を使用する事が出来たので、いくつかのアプリで、リリース済みバージョンがiOS8で動くかを確認した。
結果的に、ぱっと見では問題なさそうだが、深くは検証していない。
これからじっくり検証していく予定。
ついでに、iPhone6/6Plusでの表示を見たが、シミュレータ上では、問題無く拡大されているようだった。
これに関しては、早く実物を入手して試してみたいところなんだけどなぁ・・・

拍手[0回]


前のページ      次のページ

リリース済みアプリ

Silmuvide


PseudoRPT


うつすと!


ChronologyMaker


LASI


3行日記


単位計算機


Marking Map Plus


交通費管理


交通費計算リスト


Markin Map


SheepSleepSheep


RootCalculator


元号変換


PieChart


MeasureShooting


SimpleMapCreator



Applivのレビュー記事
http://app-liv.jp/713163900/

ゆびてんじ


PR



Copyright ©   marble seijin の開発日記   All Rights Reserved
Design by MMIT simple_plain Powered by NINJA TOOLS
忍者ブログ [PR]