医大生Appyのブログ

初めまして、医大生のAppyです。サッカー、ドラム、オセロ、プログラミング、数学、医学、アニメ、ゲーム、漫画etc...と多趣味な医大生です。それをうまく利用して有益な情報をみなさんにお届けできればと思い、ブログを始めました。ゆっくりしていってね。

Google mobile SDKのアップデート方法

Xcode関連。AppStoreにSwiftで作ったアプリを配布している人向け。(てか自分向け)

ターミナル→Xcodeで配布しているアプリのディレクトリまで移動(過去にpod installしたところと同じ場所のはず)→もっかいpod installするだけ。(pod内にinstall 〜SDK的な記載があるのを確認してね。)

アップデート方法は以上。

簡単に言うともっかいpodインストールすればいいだけ。

UIbuttonの画像を設定・変更するのに行き詰まった。(action 状態になってるボタンの画像をコードで変える方法)

まず、結論から。

action と outlet は一つのボタンで併存できます。

つまり、あるボタンをドラッグ&ドロップで配置してそこからコードに繋げる際、

action状態にしたあとで、同じボタンを再度別の場所のコードに繋いで、outletにして画像変更してよいのです。

というか、IBActionで定義したボタンをコードで画像変更するのは無理です。

ではどうするのか。

「UIbutton 画像変更 Swift」のように検索すると、どのサイトも
____________________________
class ViewController: UIViewController {
@IBOutlet weak var imageButton: UIButton!

@IBAction func imageButtonPush(_ sender: Any) {

let image = UIImage(named: "icon")
let state = UIControl.State.normal

imageButton.setImage(image, for: state)

}
}
____________________________
のように、IBOutletの状態にしているサイトしかなく、たとえば上記の
IBActionの状態にしたボタンをコードによって画像変更する方法が書いてありません。
(ただ画像変更するだけならassetに取り込んだ画像をXcodeの右端の"Image"欄から選べば良いだけですが、普通は何らかの操作を加えて画像を変更したいと思います。)

色々試した結果、
1. Action状態にしたボタン(これをAとします)の画像をコードで変更するには、AをIBOutletとして同じコードの別の行に繋がないといけない。(分かりにくいと思いますので、少し説明をこの後加えます。)
IBActionはどのような操作をするかの記述、IBOutletは見た目に関する記述をしたいときに設定するものと思っていただいて良いと思います)

2. outletで 定義したボタンの見た目を"hoge.png"にしたいときは

@IBOutlet weak var nya1: UIButton!
//nya1という名前でAを、Outletの状態でコードにつなげました。

let gazou1 = UIImage(named: "hoge")
//hogeの後の.pngは省略できます。またUIImageにgazou1と名前をつけました。

override func viewDidLoad() {

super.viewDidLoad()

nya1.setImage(gazou1, for: .normal)
//override func viewDidLoad()など、func~の中でやるとうまくいきます。
}

と書けば、変更できます。
ただし、再度注意しますが、このnya1と定義されたUIButtonは
私のコードでは、別の場所で、IBActionとして定義されているものです。

@IBAction func number1(_ sender: Any) {

}

「number1,nya1は名前は違うけど同じボタン!!
number1はIBAction、nya1はIBOutletにしたときの名前!!」

「number1」とIBActionで定義したからといって、IBOutletで定義した場合と同じように

number1.setImage(gazou1, for: .normal)

と記載してもうまくいかず、エラーが出るだけです。

IBActionで定義した後、同じボタンを

IBOutletでもnya1などと定義した後に、

nya1.setImage(gazou1, for: .normal)

と記載してください。

あなたのSwift生活が、うまくいきますように。

アプリ4作目『BPM Quiz』プライバシーポリシー

【Hiroshi Ashihara】(以下「開発者」とします。)は、開発者の提供するサービス(以下「本サービス」といいます。)における、ユーザーについての個人情報を含む利用者情報の取扱いについて、以下のとおりプライバシーポリシー(以下「本ポリシー」といいます。)を定めます。

1. 利用者情報の収集について
本ポリシーにおいて、「利用者情報」とは、ユーザーの識別に係る情報、通信サービス上の行動履歴、その他ユーザーまたはユーザーの端末に関連して生成または蓄積された情報であって、本ポリシーに基づき開発者またはサードパーティー製の広告を提供する者が収集するものを意味するものとします。 本サービスにおいて開発者や広告提供者がこの利用者情報をアプリ開発やパーソナライズ広告提供以外の目的で収集することはいたしません(ただし、本サービスの利用者がアプリを購入した際にAppleから提供されうる個人情報については、今後のアプリ開発のために開発者が利用する可能性はあります)。本サービスを利用されるユーザーの個人情報を、開発者が何らかの形で収集し、利用することはいたしません。しかし、バナー広告をタップした際のインターネットを介した情報のやりとりは100%安全で信頼できるものではなく、絶対的なセキュリティを保証することはできません。

2. 第三者提供
本アプリを利用される際、Google などの第三者配信事業者が Cookie を使用して、ユーザーがそのアプリやウェブサイトに過去にアクセスした際の情報に基づいて広告が配信されます。また、Google が広告 Cookie を使用することにより、ユーザーがそのアプリやウェブサイトにアクセスした際の情報に基づいて、Google やそのパートナーが適切な広告をユーザーに表示できます。
ユーザーは、『広告設定』(
https://adssettings.google.com/authenticated
)でパーソナライズ広告を無効にできます(または、
https://optout.aboutads.info/?c=2&lang=EN
にアクセスすれば、パーソナライズ広告に使われる第三者配信事業者の Cookie を無効にできます)。
本アプリにおいて、第三者配信事業者や広告ネットワークの配信する広告が掲載されることを明記します。また、対象となる第三者配信事業者や広告ネットワークの適切なウェブサイトへのリンクを掲載します。

3.免責事項
開発者は本サービス利用中にリンクやバナーが表示された場合、表示されるリンクやバナーなどで移動したサイトで提供される情報、サービス等について一切の責任を負いません。また、開発者は本サービス利用中に生じた不具合による損害、そして本サービス利用中に生じた損害等の一切の責任を負いかねますのでご了承ください。

4. お問い合わせ
ご意見、ご質問、苦情のお申出その他利用者情報の取扱いに関するお問い合わせは、下記のメールアドレスまでお願いいたします。
連絡先:hiroassi2@gmail.com

5. プライバシーポリシーの変更手続
開発者は、必要に応じて、本ポリシーを変更します。但し、法令上ユーザーの同意が必要となるような本ポリシーの変更を行う場合、変更後の本ポリシーは、開発者所定の方法で変更に同意したユーザーに対してのみ適用されるものとします。なお、開発者は、本ポリシーを変更する場合には、変更後の本ポリシーの施行時期及び内容を本ウェブサイト上での表示その他の適切な方法により周知し、またはユーザーに通知します。
【2022年12月26日制定】

アプリ3作目『Easy Style』 プライバシーポリシー

【Hiroshi Ashihara】(以下「開発者」とします。)は、開発者の提供するサービス(以下「本サービス」といいます。)における、ユーザーについての個人情報を含む利用者情報の取扱いについて、以下のとおりプライバシーポリシー(以下「本ポリシー」といいます。)を定めます。

1. 利用者情報の収集について
本ポリシーにおいて、「利用者情報」とは、ユーザーの識別に係る情報、通信サービス上の行動履歴、その他ユーザーまたはユーザーの端末に関連して生成または蓄積された情報であって、本ポリシーに基づき開発者またはサードパーティー製の広告を提供する者が収集するものを意味するものとします。 本サービスにおいて開発者や広告提供者がこの利用者情報をアプリ開発やパーソナライズ広告提供以外の目的で収集することはいたしません(ただし、本サービスの利用者がアプリを購入した際にAppleから提供されうる個人情報については、今後のアプリ開発のために開発者が利用する可能性はあります)。本サービスを利用されるユーザーの個人情報を、開発者が何らかの形で収集し、利用することはいたしません。しかし、バナー広告をタップした際のインターネットを介した情報のやりとりは100%安全で信頼できるものではなく、絶対的なセキュリティを保証することはできません。

2. 第三者提供
本アプリを利用される際、Google などの第三者配信事業者が Cookie を使用して、ユーザーがそのアプリやウェブサイトに過去にアクセスした際の情報に基づいて広告が配信されます。また、Google が広告 Cookie を使用することにより、ユーザーがそのアプリやウェブサイトにアクセスした際の情報に基づいて、Google やそのパートナーが適切な広告をユーザーに表示できます。
ユーザーは、『広告設定』(
https://adssettings.google.com/authenticated
)でパーソナライズ広告を無効にできます(または、
https://optout.aboutads.info/?c=2&lang=EN
にアクセスすれば、パーソナライズ広告に使われる第三者配信事業者の Cookie を無効にできます)。
本アプリにおいて、第三者配信事業者や広告ネットワークの配信する広告が掲載されることを明記します。また、対象となる第三者配信事業者や広告ネットワークの適切なウェブサイトへのリンクを掲載します。

3.免責事項
開発者は本サービス利用中にリンクやバナーが表示された場合、表示されるリンクやバナーなどで移動したサイトで提供される情報、サービス等について一切の責任を負いません。また、開発者は本サービス利用中に生じた不具合による損害、そして本サービス利用中に生じた損害等の一切の責任を負いかねますのでご了承ください。

4. お問い合わせ
ご意見、ご質問、苦情のお申出その他利用者情報の取扱いに関するお問い合わせは、下記のメールアドレスまでお願いいたします。
連絡先:hiroassi2@gmail.com

5. プライバシーポリシーの変更手続
開発者は、必要に応じて、本ポリシーを変更します。但し、法令上ユーザーの同意が必要となるような本ポリシーの変更を行う場合、変更後の本ポリシーは、開発者所定の方法で変更に同意したユーザーに対してのみ適用されるものとします。なお、開発者は、本ポリシーを変更する場合には、変更後の本ポリシーの施行時期及び内容を本ウェブサイト上での表示その他の適切な方法により周知し、またはユーザーに通知します。
【2022年12月25日制定】

【アプリ】"Hand sign for help" をリリースしました!!【3作目】

このアプリは、自分に危害を加える相手に気づかれることなく、他の人に助けを求めるアプリです。

Easy Styleとカモフラージュされたアプリで一見、ただの自然の画像集のように見えますが、"play"ボタンを押すことで京都の自然の動画が流れ始め、途中で助けを求める"hand sign"の動画(親指を4本指で握る)が数秒間流れます。これにより、画面を見ている相手だけに助けを求めることができます。

hand signはその意味を相手が知っている必要があり、またいろいろな方向から見えうるので助けに気づいてもらえなかったり、加害者にもバレてしまったりする可能性があります。しかし、このアプリを使えば、一方向からしか動画が見えず、また、あたかも自然の綺麗な景色の動画を見せているようにして相手に助けを求めることができます。さらに、hand signと同時に"HELP ME!!"の文字が表示されるので、hand signの意味を知らない人でもあなたが助けを求めていることに気づいてくれるでしょう。

hand signの動画は無音であり、同時に流れる自然の景色の動画は有音なので、携帯を見ていない人からすれば自然の動画をみているだけだと錯覚するでしょう。本当に助けを求めるひとだけに、あなたはこのアプリを見せれば良いのです。

Do you need someone's help? This app asks others for help without being noticed by your assailant.

Open the app camouflaged as "EasyStyle", press the "play" button, then show the video to others.

At first, the scenery of nature is displayed, but in the middle, a video of "Hand sign (ask for help)"is displayed for a few seconds.

The video of the natural scenery has sound, but Hand sign is silent, so people other than those watching the video will not notice the rescue.

This means that you can ask for help without the person doing you harm knowing.

A sentence of "HELP ME !!" were shown in the video of Hand sign, and which makes others who don't know the meaning of the hand sign noticed that you need help.