弊社アプリ「保育士 過去問」が「資格取得お役立ちガイド」という保育に関するオウンドメディア上で、紹介されました!
https://shikaku.hoiku-me.com/guide/archives/4213/
今後もより良い商品を皆様にお届けできますよう、努めてまいります。
引き続きお引き立ての程、よろしくお願い申し上げます。
掲載サイト運営元・・・株式会社ウェルクス
弊社アプリ「保育士 過去問」が「資格取得お役立ちガイド」という保育に関するオウンドメディア上で、紹介されました!
https://shikaku.hoiku-me.com/guide/archives/4213/
今後もより良い商品を皆様にお届けできますよう、努めてまいります。
引き続きお引き立ての程、よろしくお願い申し上げます。
掲載サイト運営元・・・株式会社ウェルクス
バイナリをアップロードしてから直ぐにアプリを保存したり申請しようとすると、以下のメッセージが出る。
「App 情報を保存できませんでした。もう一度やり直してください。問題が解決しない場合はご連絡ください。」
この場合は暫く(10分~1時間程度)待てばうまくいくようになる。
「We’re temporarily unable to save your changes. Please try again later.」
と出た場合も同様だ。
iOS8のシェアがようやく50%を超えたようだ。弊社ではiPhoneアプリを開発しているが、既に、iOS5やiOS6のサポートは切っている。iOS7は今後1年程度はサポートし続けるが、今後の開発はiOS8をターゲットに進めて行きたい。複数OSのサポートは手間がかかる。動作検証も大変だし、バージョンごとの場合分けが発生し、ソースコードが肥大しやすくなる。切り捨てるものは切り捨てることで、優れた製品を開発していきたい。
2014年10月中旬には、iPhoneアプリの審査期間が11日程度まで伸びていましたが、既に7日程度まで審査期間が短縮されているようです。これでも短くはないですが(Androidアプリはせいぜい数時間ですよね)、多少は改善したと言えます。
アプリの審査期間については以下の記事をご覧ください。
iPhoneアプリの審査期間
Cocos2d-xは、iPhone、Android、コンシューマゲーム機、PC、Macなど数多くのデバイスに対応した、ゲーム開発フレームワークです。それに対して、Cocos2dは、iPhone, iPad, Macに特化したフレームワークです。今後のマルチデバイス対応を考えると、Cocos2d-xを使うべきなのかなと思い、それぞれを軽くつかってみたのですが、Cocos2d-xではプロジェクトのビルドにかかる時間が長かったり、開発言語がC++であったりと(Objective-Cやcの経験はそれなりにありますが、C++は10年近くブランクがあります)、あまり効率的に開発できそうにありませんでした。対してCocos2dは、慣れ親しんでいるObjective-cを使え、ビルドも早く(簡単なプロジェクトであれば数秒で動きました)SpriteBuilderとの連携も快適で、かなり好印象でした。Androidがメインであれば、Cocos2d-xの方が良さそうですが、iPhoneをメインに開発し、それがAndroidでも動けばよい。といった感じの開発になりそうなので、Cocos2d-xより、Cocos2d+Apportableでの開発が良さそうです。
以下のチュートリアルをやってみましたが、1週間ではなく、1時間で動くところまで作れました。すごくよいチュートリアルでしたよ!
[1: インストール] cocos2d-iPhoneとSpriteBuilderでゲームを1週間で作ろう
iPhoneアプリの審査待ち期間を調べる方法。
1. Appleの公式情報
App Review Statusに、5営業日以内の審査率が表示されています。以前は98%などと誇らしげに表示されていたのですが、現時点ではiOSの新規アプリでは5営業日以内の審査率が34%と、審査期間が伸びていることがわかります。公式情報なので信頼できるのですが、あまり参考になりません。
2. Average App Store Review Times
Average App Store Review Timesに過去2週間の平均待ち期間が集計されています。非公式のデータですが、具体的な平均日数や、日数の分布、審査期間の変遷なども確認できて、とても参考になります。iOS8のリリース以降、審査期間が長期化傾向にあるのでご注意下さい。
前回の記事の続きです。同じ位置で回転しているだけでは飛んでる感じがしないので、前に進むようにしてみました。runActionを使った動きの実装では、当たり判定などを実装する際にうまくいかないので、nextFrameメソッドで1コマずつ座標を計算するようにしました。
https://github.com/ynishi2014/SpriteKit-experiment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import SpriteKit class GameScene: SKScene { var spriteArray:[SKSpriteNode] = [] override func didMoveToView(view: SKView) { /* Setup your scene here */ } override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { /* Called when a touch begins */ for touch: AnyObject in touches { let location = touch.locationInNode(self) let sprite = SKSpriteNode(imageNamed:"Spaceship") sprite.xScale = 0.1 sprite.yScale = 0.1 sprite.position = location spriteArray.append(sprite); self.addChild(sprite) println("sprite" + spriteArray.count.description) if spriteArray.count > 5 { spriteArray[0].removeFromParent() spriteArray.removeAtIndex(0) } } } override func update(currentTime: CFTimeInterval) { for sprite: SKSpriteNode in spriteArray { let v:CGFloat = 10 sprite.position = CGPointMake(sprite.position.x + cos(sprite.zRotation + 3.1 / 2) * v, sprite.position.y + sin(sprite.zRotation + 3.1 / 2) * v) sprite.zRotation += 0.1 } } } |
Game > Swift > Spritekit > Universal でサンプルアプリを作成すると、回転する宇宙船が表示された。ゲームにするからには、作成した宇宙船を管理する必要があるだろうと思い、NSMutableArrayで管理し、5個以上表示されないようにした。
https://github.com/ynishi2014/SpriteKit-experiment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import SpriteKit class GameScene: SKScene { var spriteArray:[SKSpriteNode] = [] override func didMoveToView(view: SKView) { /* Setup your scene here */ } override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { /* Called when a touch begins */ for touch: AnyObject in touches { let location = touch.locationInNode(self) let sprite = SKSpriteNode(imageNamed:"Spaceship") sprite.xScale = 0.2 sprite.yScale = 0.2 sprite.position = location let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1) sprite.runAction(SKAction.repeatActionForever(action)) spriteArray.append(sprite); self.addChild(sprite) println("sprite" + spriteArray.count.description) if spriteArray.count > 5 { spriteArray[0].removeFromParent() spriteArray.removeAtIndex(0) } } } override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ } |
Control+スペース でSpotlightが開きます。よく使う機能なので覚えておくと作業が効率化できますね。
お久しぶりです。西村です。
Xcode7がβだった頃にSwiftを少し触っていたのですが、忙しくなってしまい、そのままになっていました。他の開発も落ち着いてきましたので、Swiftに再トライします。