nonkapibaraが提供するアプリ

プライバシーポリシーについて

■個人情報の収集
本アプリは、広告配信のためにGoogle 広告、Google AdMob、利用状況解析のためにGoogle Firebase Analyticsを使用しています

■広告について
本アプリでは、広告配信を目的として以下の広告配信事業者がご利用者の情報を自動取得する場合がございます。取得する情報、利用目的、第三者への提供等につきましては、以下の広告配信事業者のアプリケーション・プライバシーポリシーのリンクよりご確認ください。

AdMob(Google Inc.)
http://www.google.com/intl/ja/policies/technologies/ads/

Google 広告に関するポリシー
https://policies.google.com/technologies/ads?hl=ja

■利用状況解析ついて
本アプリでは、今後の開発の参考とするため、アプリの利用状況データを収集するツールとしてFirebase(Google Inc.)を使用しており、Firebaseがご利用者の情報を自動取得する場合がございます。取得する情報、利用目的、第三者への提供等につきましては、以下のGoogleプライバシーポリシーのリンクよりご確認ください。

Google プライバシーポリシー
https://policies.google.com/privacy?hl=ja

 

Privacy Policy

nonkapibara built the CherryCocktailGlass app as a Free app. This SERVICE is provided by nonkapibara at no cost and is intended for use as is.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.

If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.

The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at CherryCocktailGlass unless otherwise defined in this Privacy Policy.

Information Collection and Use

For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information, including but not limited to Collection of personal information,Ad delivery,Usage analysis. The information that I request will be retained on your device and is not collected by me in any way.

The app does use third party services that may collect information used to identify you.

Link to privacy policy of third party service providers used by the app

 

Google Play Services
https://policies.google.com/privacy

AdMob
https://support.google.com/admob/answer/6128543?hl=en

Firebase Analytics
https://firebase.google.com/policies/analytics

 

Log Data

I want to inform you that whenever you use my Service, in a case of an error in the app I collect data and information (through third party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics.

Cookies

Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.

This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.

Service Providers

I may employ third-party companies and individuals due to the following reasons:

  • To facilitate our Service;
  • To provide the Service on our behalf;
  • To perform Service-related services; or
  • To assist us in analyzing how our Service is used.

I want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.

Security

I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.

Links to Other Sites

This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.

Children’s Privacy

These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do necessary actions.

Changes to This Privacy Policy

I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.

Contact Us

If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at nonkapibara@gmail.com.

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
End

 

★Androidアプリ

★シンプルだけど意外と難しいミニゲーム

★無料ゲーム

 

↓↓↓↓↓↓Android 無料ゲーム

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Xcode version 10.0(10A255)
⭐️Unity 2018.2.15f1
⭐️iPhone7 IOS11.4.1

実際に動かした動画はこちら↓↓

イメージ 1


1.イスのAssetsをダウンロードする
TURBOSQUID」サイトからイスの3Dモデルをダウンロードする

Office chair 
で検索する


イメージ 2
イメージ 4

2.Office_chair_FBX.rar
をダウンロードする。


※ .rarは圧縮されているので、解凍ソフト「The Unarchiver」を使って、
AppStoreからダウンロードする


イメージ 3


3.Assetsストアから「Lean Touch」をダウンロードし、インポートする

イメージ 5

4.AssetsのOffice_chair_FBXHitCubeParentへDrag&Dropする

イメージ 7

5.ARKitPluginのPrefabsを選択し、shadowPlanePrefabをHitCubeParentへDrag&Dropする

イメージ 6

6.shadowPlanePrefabを選択し、Unity AR Hit Test Exampleを追加し、HitCubeParentにする。

イメージ 8

7.shadowPlanePrefabPlaneを選択し、Mesh colliderを削除する
イメージ 9

8.こんな感じになる
イメージ 10

9.Lean Touchを選択する
イメージ 11

10.Office_chairを選択し、コンポーネント追加で、Lean Scaleを追加する
イメージ 14

11.Office_chairを選択し、コンポーネント追加で、Lean Rotateを追加する
イメージ 16

12.Office_chairを選択し、コンポーネント追加で、Rigidbodyを追加する
イメージ 12

13.Office_chairを選択し、コンポーネント追加で、Box Colliderを追加する

14.イスの影を作る。
イメージ 13


イメージ 15

完成!!


JSONデータ 辞書配列の読み込み

nondata.txt

[
{"name":"kapibara-san", "birthday":"20150318"},
{"name":"arupaka-san", "birthday":"20150503"},
{"name":"white-san", "birthday":"20150101"}
]

出力結果
name:[kapibara-san] birthday:[20150318]
name:[arupaka-san] birthday:[20150503]
name:[white-san] birthday:[2015年01月01]


イメージ 1



//
//  ViewController.swift
//  nonSample14
//
//  Created by non on 2015/03/24.
//  Copyright (c) 2015 non. All rights reserved.
//
import UIKit

class ViewController: UIViewController {
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    //画面が表示される時
    override func viewWillAppear(animated: Bool) {
        //JSONデータを読み込む
        var path = NSBundle.mainBundle().pathForResource("nondata", ofType: "txt")
        var jsondata = NSData(contentsOfFile: path!)
        //配列データに変換して
        let nonArray = NSJSONSerialization.JSONObjectWithData(jsondata!, options: nil, error: nil) as NSArray
        //配列の個数だけ繰り返して表示する
        for dat in nonArray{
            var name = dat["name"] as String
            var birthday = dat["birthday"] as String
            println("name:[\(name)] birthday:[\(birthday)]")
        }
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

JSONデータ 辞書データの読み込み

nondata.txt
{"key1":"kapibara-san","key2":"arupaka-san","key3":"white-san"}

出力結果
値:[(key1, kapibara-san)]
値:[(key3, white-san)]
値:[(key2, arupaka-san)

イメージ 1

イメージ 2

イメージ 3
//
//  ViewController.swift
//  nonSample14
//
//  Created by non on 2015/03/24.
//  Copyright (c) 2015 non. All rights reserved.
//
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    //画面が表示される時に
    override func viewWillAppear(animated: Bool) {
        //JSONデータを読み込む
        var path = NSBundle.mainBundle().pathForResource("nondata", ofType: "txt")
        var jsondata = NSData(contentsOfFile: path!)
        //配列データに変換する
        let nondic = NSJSONSerialization.JSONObjectWithData(jsondata!, options: nil, error: nil) as NSDictionary
        
        //配列の個数だけ繰り返して表示する
        for dat in nondic{
            println(":[\(dat)]")
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

JSONデータ

★配列
[“kapibara-san”,”arupaka-san”,”white-san”]

★辞書データ(オブジェクト)の書き方
{“key1”:”kapibara-san”,”key2”:”arupaka-san”,”key3”:”white-san"}

★辞書の配列
[
  {“name”:”kapibara-san”,”food”:”glass”},
  {“name”:”arupaka-san”,”food”:”banana”},
]

★辞書の辞書
{
    “fukuokaZoo”:{“name”:”kapibara-san”,”food”:”glass”},
    “nagazakiZoo”:{“name”:”arupaka-san”,”food”:”banana”}
}

★JSONデータを、配列や辞書データに変換するJSONObjectWithDate()メソッド
★ネット上のJSONデータを読み込む
var url = NSURL(string: “nonファイル”)
var request = NSULRequest(URL: url)
var jsondata = NSURLConnection.sendSynchronousRequest(request,returningResponse:nil, error: nil)

★読み込んだデータを変換して、配列や辞書データに変換する
let jsonArray = NSJSONSerialization.JSONObjectWithData(jsondata!, options: nil, error: nil) as NSArray

★配列の読み込み
イメージ 1

イメージ 2

イメージ 3
イメージ 4

イメージ 5

イメージ 6




//
//  ViewController.swift
//  nonSample14
//
//  Created by non on 2015/03/24.
//  Copyright (c) 2015 non. All rights reserved.
//

import UIKit

class ViewController: UIViewController {


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    
    //画面が表示される時
    override func viewWillAppear(animated: Bool) {
        //JSONデータを読み込む
        var path = NSBundle.mainBundle().pathForResource("nondata", ofType: "txt")
        var jsondata = NSData(contentsOfFile: path!)
        //配列データに変換して
        let jsonArray = NSJSONSerialization.JSONObjectWithData(jsondata!, options: nil, error: nil) as NSArray
        //配列の個数だけ繰り返して表示する
        for entity in jsonArray{
            println(":[\(entity)]")
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

NSUserDefault 一時的にデータを保存する


データを簡単に保存したり読みだしたりする

★ユーザーデフォルトを取得する
var nonDefault = NSUserDefaults.standardUserDefaults()

★文字を書き込む
nonDefault.setObject(“kapibara-sanだよ”, forkey:”nonkey”)

★配列を書き込む
nonDefault.setObject([“no1”,”no2”,”no3”], forkey:”nonArraykey”)

★整数を書き込む
nonDefault.setInteger(5, forkey:”nonIntkey”)

★実数を書き込む
nonDefault.setDouble(5.5, forkey:”nondoublekey”)

★書き込んだデータを即反映させる
nonDefault.synchronize()

★ユーザーデフォルトを取得する
var nonDefault = NSUserDefaults.standardUserDefaults()

★キーを指定して値を読み出す
var nonStr:String = nonDefault.stringForKey(“nonkey”)

★配列を読み出す
var nonArray:Array = nonDefault.arrayForKey(“nonArraykey”)

★整数を読み出す
var nonInt:Int = nonDefault.integerForKey(“nonInt”)

★実数を読み出す
var nonDouble:Double = nonDefault.doubleForKey(“nondoublekey”)

★データを消す
nonDefault.removeObjectForKey(“nonkey")
イメージ 1

イメージ 2


//
//  ViewController.swift
//  nonSample14
//
//  Created by non on 2015/03/24.
//  Copyright (c) 2015 non. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var txt1: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    //画面が表示される時
    override func viewWillAppear(animated: Bool) {
        
        var nonDefaul = NSUserDefaults.standardUserDefaults()
        
        //データを読み出す
        var nonStr = nonDefaul.stringForKey("nonKey")
        //文字があればセットする
        if let tmpStr = nonStr{
            txt1.text = tmpStr
        }
        
    }
    
    //リターンキーが押された時
    @IBAction func tapReturnKey(sender: UITextField) {
        var nonDefault = NSUserDefaults.standardUserDefaults()
        //データを書き込む
        nonDefault.setObject(sender.text, forKey: "nonKey")
        //即反映させる
        nonDefault.synchronize()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


UIWebView
イメージ 1


イメージ 2
イメージ 3
イメージ 4
イメージ 5
イメージ 6



//
//  ViewController.swift
//  nonSample13
//
//  Created by non on 2015/03/21.
//  Copyright (c) 2015 non. All rights reserved.
//

import UIKit

class ViewController: UIViewController, UIWebViewDelegate {
    @IBOutlet weak var nonwebview: UIWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //デリゲート先を設定する
        nonwebview.delegate = self
        //URLリクエストを作成
        var nonURL = NSURL(string:"http://book.geocities.jp/nonpipo/")
        var nonURLReq = NSURLRequest(URL: nonURL!)
        //Web View表示
        nonwebview.loadRequest(nonURLReq)
    }
    
    //ページ読み込み開始時にインジケータ表示
    func webViewDidStartLoad(webView: UIWebView) {
        UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    }
    
    //ページ読み込み完了時にインジケータ非表示
    func webViewDidFinishLoad(webView: UIWebView) {
        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
}