Messages でメッセージが送れなくなったら確認する設定

私はよく Mac の Messages アプリを使うのですが、 iOS 10.2 にアップデートした際にメッセージが送れなくなりはまったので書いておきます。

Messages のアカウント設定がアクティブになっているのに送れない場合は、iPhone の設定 > メッセージ > SMS/MMS転送 の設定を確認してみてください。

Appsee を使ってみた

Appsee を趣味のアプリにインストールしてみて面白かったのでご紹介します。 Appsee をインストールしておくと、ユーザーが使っているときの動画を記録してくれます。その他、アプリの改善に役立つ情報も取ってくれます。

以下、Appsee の管理画面の紹介です。

Overview

f:id:nkmrh:20151214100919p:plain

Sessions All

f:id:nkmrh:20151214100916p:plain

Video

  • 右側の Play Video をタップするとセッション動画が再生されます。 f:id:nkmrh:20151214100911g:plain

UI Analysis Screens

  • 画面のどこがタップされているかわかります f:id:nkmrh:20151214100922p:plain

価格

公式ページ公式ページに下記のように書いてありました。

  • アプリ解析数、セッション数、ビデオ記録数により異なりますが、Appseeは月額95,000円~

結構値がはりますが、これを使ってUIの研究ができたら面白そうですね。

Helpshift

helpshiftというユーザーサポートをチャット形式で出来るようにしてくれるサービスがあったので試してみました。

https://www.helpshift.com

  1. ユーザー登録
  2. API_KEY, DOMAIN, APP_IDの取得
  3. SDKの導入

  4. SDKは以下の種類のものが用意されています。

  5. iOS
  6. Android
  7. Unity
  8. Cocos2d-x
  9. PhoneGap

  10. SDKでできること

  11. In-app Messaging

f:id:nkmrh:20140604185425p:plain

  • Showing a Particular FAQ Section

f:id:nkmrh:20140604185433p:plain

  • Showing a Particular FAQ Question

f:id:nkmrh:20140604185437p:plain

  • Skinning the Helpshift SDK to match the look-n-feel of your app

f:id:nkmrh:20140604185441p:plain

  • Customize localizable strings to support multiple languages in the SDK UI.
  • Push and In-app notifications
  • Track events and user actions when the user starts a new conversation.
  • Asking for reviews and feedback

f:id:nkmrh:20140604185421p:plain

・質問を送信する為のチャット画面を表示するコード


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [Helpshift installForApiKey:@"xxxxxxxxxxx"
                     domainName:@"xxxxxxxxxxx"
                          appID:@"xxxxxxxxxxx"];
    
    // NOTE: This is just an empty window & a view controller to demo the showConversation API call
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = [[UIViewController alloc] init];
    [self.window makeKeyAndVisible];
    // You can get rid of the above 4 lines once done testing Helpshift SDK
    
    
    // NOTE: Move the line below to wherever you would like the Helpshift chat screen
    // to open. E.g. a contact button in your app settings
    [[Helpshift sharedInstance] showConversation:self.window.rootViewController
                                     withOptions:nil];
    return YES;
}

SDKのチャット画面

f:id:nkmrh:20140604185357p:plain

・チャット画面から質問を送ると、helpshiftからメールが届く

f:id:nkmrh:20140604185446p:plain

・管理画面もチャット形式になっていて、対応した人・デバイスの種類・OSバージョンなどが自動で表示される。またメモやタグをつけて管理できる。

f:id:nkmrh:20140604185450p:plain

管理ページからサクッとFAQページが作成できる

f:id:nkmrh:20140604185416p:plain

価格はMAUに応じたプラン制

プラン名 MAU 価格
Starter 20,000 $20/月
Pro 100,000 $100/月
Growth 500,000 $500/月

所感

  • 従来の問い合わせメールよりチャット形式の方が確かに質問しやすい
  • この形式なら気軽に質問して、問題解決までが素早くできる
  • レビュー欄に不満を書かれるのを防げそう
  • サポート体制の整っていない、小規模アプリの場合、有効そう
  • Q&Aで細かい操作方法のTipsなどを書くと良さそう

サンプルコード
https://github.com/sraj/helpshift-ios-sdk-examples

3Dモデルを表示する SceneKit #1

Scene Kitを使って3Dモデル(.dae)を表示してみました。

Scene kit

“Scene Kit is a high-level API on top of OpenGL that operates on a scene graph”

DAE

Digital Asset Exchange Documents - XML based - Supported by the major 3D tools - Popular in the industry

Code


  NSURL *url = [[NSBundle mainBundle] URLForResource:@"lego"
                                       withExtension:@"dae"];

  NSError *error;
  SCNScene *scene = [SCNScene sceneWithURL:url options:nil error:&error];

  SCNView *view = [[SCNView alloc] initWithFrame:self.window.frame options:nil];
  view.scene = scene;
  self.window.contentView = view;

Xcode上で編集もできるようです

Finder&Previewで見れます


もしも開発中にAdMobが表示されなくなったら

AdMobの設定もちゃんとあってるし、今までちゃんと表示されていたのに。。。となった時は、
Advertising Identifierをリセットすると解決する可能性があります。


設定アプリ -> 「プライバシー」-> 「広告」

パスコードロックのライブラリ

THPinViewControllerを使うとiOS 7 Styleのパスコードロックが簡単にできます。

Github

https://github.com/antiraum/THPinViewController

Podfile

cocoapodsにも対応しています。


pod 'THPinViewController', '~> 1.1.2'

Screenshot

Usage


pinViewController.backgroundColor = [UIColor lightGrayColor];
pinViewController.promptTitle = @"Enter PIN";
pinViewController.promptColor = [UIColor whiteColor];
pinViewController.view.tintColor = [UIColor whiteColor];
pinViewController.hideLetters = YES;
[self presentViewController:pinViewController animated:YES completion:nil];

// mandatory delegate methods

- (NSUInteger)pinLengthForPinViewController:(THPinViewController *)pinViewController
{
    return 4;
}

- (BOOL)pinViewController:(THPinViewController *)pinViewController isPinValid:(NSString *)pin
{
    if ([pin isEqualToString:self.correctPin]) {
        return YES;
    } else {
        self.remainingPinEntries--;
        return NO;
    }
}

- (BOOL)userCanRetryInPinViewController:(THPinViewController *)pinViewController
{
    return (self.remainingPinEntries > 0);
}

// optional delegate methods

- (void)incorrectPinEnteredInPinViewController:(THPinViewController *)pinViewController {}
- (void)pinViewControllerWillDismissAfterPinEntryWasSuccessful:(THPinViewController *)pinViewController {}
- (void)pinViewControllerDidDismissAfterPinEntryWasSuccessful:(THPinViewController *)pinViewController {}
- (void)pinViewControllerWillDismissAfterPinEntryWasUnsuccessful:(THPinViewController *)pinViewController {}
- (void)pinViewControllerDidDismissAfterPinEntryWasUnsuccessful:(THPinViewController *)pinViewController {}
- (void)pinViewControllerWillDismissAfterPinEntryWasCancelled:(THPinViewController *)pinViewController {}
- (void)pinViewControllerDidDismissAfterPinEntryWasCancelled:(THPinViewController *)pinViewController {}

iOStreamを試してみた

方法

iOStreamは、iPhone,iPadの画面をブラウザにストリーミング配信できちゃうようにするライブラリです。 こちらからSDKをダウンロードできます。

SDKをプロジェクトに含め、下記のコードを追加するだけです。
(詳細はREADME.mdを参照してください。)


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    iOStreamClient *client = [iOStreamClient sharedInstance];
    client.frameInterval = 6; //10 FPS
    client.showsTouchPointer = YES; //show the touch pointer
    [client startStream];

    return YES;
}

デフォルトでは下記のサーバが使われますが、独自サーバでのホストもできるそうです。 サーバ側のソースも公開されていました。Node.jsで書かれていました。


http://fuckitstreamit.com


DEMO

iPhoneに表示されたIDをブラウザに入力することで接続されます。


所感

ちょっとフレームレートが低いのか、画面がパッと変わってしまうてんが惜しいと感じた。 iOStreamはハッカソンで38時間で開発されたそうです。。。すごい!


iOStream