最近は、注目度が上がりすぎて、事前にリークされて、やっぱりか。。。
とか感じていまうので、発表会がある場合は、あえて検索は避けてます。
発表会とかニュースで新発売!
とか見たほうがワクワクする。
技術的な知見や日々の記録、日常の些細な変化などを綴る雑記ブログです。専門的な技術解説から日記のようなライトな話題まで、特定のジャンルに縛られず、気になったことや面白いと感じた出来事を幅広く発信しています。筆者の視点で切り取った多様なコンテンツが楽しめる、自由な雑記空間を目指しています。
2019/08/10
2019/07/10
参考にするのはいいのだけど・・・。
プログラムを書く仕事をしていて
ブログとか、ネットにサンプルが載っていたりするのを参考にしたりするけど、
本当に実装する時、コメントとか、変数名、メソッド名、インデント、まで、
そのまんま使うってどうなのだろうか・・・・。
サンプルを参考にしても良いが、
案件のコーディングルールに則って、書き直すべきだと思うんだ。
実装スピードは早いかもしれないが、
あとで、誰かが見直すとここだけ、書き方違う!
って指摘、で検索かけると、ここを参考にしたなって。 なる。
これが、著作権など放棄、商用利用OKなら良いが、
ダメなやつまでやられると終わりだよね・・・。
ブログとか、ネットにサンプルが載っていたりするのを参考にしたりするけど、
本当に実装する時、コメントとか、変数名、メソッド名、インデント、まで、
そのまんま使うってどうなのだろうか・・・・。
サンプルを参考にしても良いが、
案件のコーディングルールに則って、書き直すべきだと思うんだ。
実装スピードは早いかもしれないが、
あとで、誰かが見直すとここだけ、書き方違う!
って指摘、で検索かけると、ここを参考にしたなって。 なる。
これが、著作権など放棄、商用利用OKなら良いが、
ダメなやつまでやられると終わりだよね・・・。
2019/06/25
【iOS】Swiftでの16進数変換 周り
メモメモ
Int("10", radix: 16)! // 16
Int("16", radix: 16)! // 22
String(10, radix: 16) // a
String(16, radix: 16) // 10
あとこの方法で文字列として16進数を表記した時は、
a~f の表記は小文字なので注意が必要です。
うっかり、文字列で比較する人がいた場合。
let i = 10 // 10進数で動的に変わるとして
if(String(i, radix: 16) == "A"){
print("true")
}else{
print("false")
}
こんな事をやろうものなら、いくらやっても true にならないから注意が必要です。
2019/06/17
【iOS】swift4 ナビゲーションコントローラー 非活性化
タイトル通りで、
ボタンを押せなくする方法。
ボタンを押せなくする方法。
self.navigationController?.navigationBar.isUserInteractionEnabled = false
ちゃんと、押せるように戻すようにしておくこと!
2019/06/13
2019/06/06
2019/06/04
【iPad】iPadOS13 って。
とうとう、OSが別れましたね、
OSが肥大化してきたので、分けようと思ったのでしょう。
いつのまにか、iPadは、Mac OS が入るようになってたりして。。。
まさかね。
いや、でも、ありえそう。
OSが肥大化してきたので、分けようと思ったのでしょう。
いつのまにか、iPadは、Mac OS が入るようになってたりして。。。
まさかね。
いや、でも、ありえそう。
2019/05/30
【iOS】swift の 配列を for する時、、、
Swift 4で確認済み
ちょっと恥ずかしい話、
var array = ["1","2"]
for i in 0...array.count - 1{
print(array[i])
}
↓ こう書けば良かったんだ。
for i in 0..<array.count{
print(array[i])
}
いや、必ず要素が1個以上ある場合は、いいんだけど。
要素が0個の時、強制終了する。
2019/05/29
地球は丸かった(google map)
iPod touch 新型 公開されてた。
iPod touchが公開されていたようです。
公式ページからも購入可能なようです。
androidユーザーなので、値段も32GBのやつなら、
それなりに手頃なので、購入しようかな。
iOSの4インチ端末ってちょうど良いサイズだと思うんですよね。
あ〜、でも、同じ金額くらいの白ロム買うっていう、手段も有りかな。
どっちが良いかなぁ。
公式ページからも購入可能なようです。
androidユーザーなので、値段も32GBのやつなら、
それなりに手頃なので、購入しようかな。
iOSの4インチ端末ってちょうど良いサイズだと思うんですよね。
あ〜、でも、同じ金額くらいの白ロム買うっていう、手段も有りかな。
どっちが良いかなぁ。
2019/05/21
Amazon. co. jp にご登録のアカウント(名前、パスワード、その他個人情報)の確認 (迷惑メール)
タイトルの通り、
----
迷惑メール来た。一瞬焦ったよー。
ログインのURLのドメインがすごく怪しいので絶対に押しちゃ行けないよ。
( リンクや画像は消してあります)
下記のような html メールが届きました。
( リンクや画像は消してあります)
下記のような html メールが届きました。
----
Аmazon お客様
Аmazon に登録いただいたお客様に、Аmazon アカウントの情報更新をお届けします。
残念ながら、Аmazon のアカウントを更新できませんでした。
今回は、カードが期限切れになってるか、請求先住所が変更されたなど、さまざまな理由でカードの情報を更新できませんでした。
アカウント情報の一部が誤っている故に、お客様のアカウントを維持するため Аmazon アカウントの 情報を確認する必要があります。下からアカウントをログインし、情報を更新してください。
Аmazon ログイン
なお、24時間以内にご確認がない場合、誠に申し訳ございません、お客様の安全の為、アカウントの利用制限をさせていただきますので、予めご了承ください。
アカウントに登録のEメールアドレスにアクセスできない場合
お問い合わせ: Amazonカスタマーサービス。
どうぞよろしくお願いいたします。
Аmazon
----
Аmazon に登録いただいたお客様に、Аmazon アカウントの情報更新をお届けします。
残念ながら、Аmazon のアカウントを更新できませんでした。
今回は、カードが期限切れになってるか、請求先住所が変更されたなど、さまざまな理由でカードの情報を更新できませんでした。
アカウント情報の一部が誤っている故に、お客様のアカウントを維持するため Аmazon アカウントの 情報を確認する必要があります。下からアカウントをログインし、情報を更新してください。
Аmazon ログイン
なお、24時間以内にご確認がない場合、誠に申し訳ございません、お客様の安全の為、アカウントの利用制限をさせていただきますので、予めご了承ください。
アカウントに登録のEメールアドレスにアクセスできない場合
お問い合わせ: Amazonカスタマーサービス。
お知らせ:
|
どうぞよろしくお願いいたします。
Аmazon
----
2019/05/14
Xcode 日本語無いよ。
2019/05/10
github って プライベートリポジトリつくれるじゃん!
表題の通り、なんとMSに買収されてから、
プライベートリポジトリも制限つきだけど、作れるようになったとの事。
リポジトリの個数制限も無いっぽい。
知らなかったよ・・・・。
プライベートリポジトリも制限つきだけど、作れるようになったとの事。
リポジトリの個数制限も無いっぽい。
知らなかったよ・・・・。
2019/04/11
【iOS】ヒラギノ問題
iOS ってヒラギノフォントを対応はしているのですが、
UILabelで英字の jg などの 特定の文字だけ、下の部分が切れてしまいます。
sizetofit() とかやっても切れます。
AutoLayoutでも駄目です。
この仕様はどうにかしてほしい・・・・。
対策案)
・Layoutを作成するとき、高さを明示的に固定で大きめに取る
・ソース上で個々に対応する(検索すれば、いろいろ出てきます)
これくらいしか対策が思いつ来ません。
ある程度、開発が進んで個数が多い場合は、あとからきつくなる問題です。
UILabelで英字の jg などの 特定の文字だけ、下の部分が切れてしまいます。
sizetofit() とかやっても切れます。
AutoLayoutでも駄目です。
この仕様はどうにかしてほしい・・・・。
対策案)
・Layoutを作成するとき、高さを明示的に固定で大きめに取る
・ソース上で個々に対応する(検索すれば、いろいろ出てきます)
これくらいしか対策が思いつ来ません。
ある程度、開発が進んで個数が多い場合は、あとからきつくなる問題です。
2019/03/12
AMAZON SNS Ruby On Rails にて実装した。
プッシュ通知の実装のしかたって、何が一番正解なのだろうか・・・。
デバイストークンはどこに貯める(保存)?
・Amazon SNS 側のみ。
・サーバー等に集約する。
両方で管理してもあまり効率が良さそうで無い・・・
※最終的に何をしたいかで決まるが・・・。
大まかな流れ)
デバイストークンを投げる(直接?サーバー経由?)
↓
アプリケーションに登録とトピックへ登録
↓
配信指示
・一斉送信をする場合は、トピックに登録するのを忘れずに。
・完全個別配信の場合は、トピックは無くてもよい。
SNSの不便な点
・デバイストークンの総数を取得する機能が無い。
100件づつ取得する機能はあるが、全て数えるとなるとすごく時間がかかる。
100万件とかあると地獄・・・・
・一斉配信はアプリケーションにトークン登録してからトピックへ登録する必要有り。
export機能とかあってもよいのではないか?
--------
送信スペック
・トピックにて配信 10万件 程度なら、誤差1分もかからないかも。
ゴミ掃除
・トークンとか無効なやつは削除してあげた方が良い。
殴り書き中ですが、今日はここまで。気が向いたら、続きを!
デバイストークンはどこに貯める(保存)?
・Amazon SNS 側のみ。
・サーバー等に集約する。
結局のところ、両方が正しいのだろうか・・・
両方で管理してもあまり効率が良さそうで無い・・・
※最終的に何をしたいかで決まるが・・・。
大まかな流れ)
デバイストークンを投げる(直接?サーバー経由?)
↓
アプリケーションに登録とトピックへ登録
↓
配信指示
・一斉送信をする場合は、トピックに登録するのを忘れずに。
・完全個別配信の場合は、トピックは無くてもよい。
SNSの不便な点
・デバイストークンの総数を取得する機能が無い。
100件づつ取得する機能はあるが、全て数えるとなるとすごく時間がかかる。
100万件とかあると地獄・・・・
・一斉配信はアプリケーションにトークン登録してからトピックへ登録する必要有り。
export機能とかあってもよいのではないか?
--------
送信スペック
・トピックにて配信 10万件 程度なら、誤差1分もかからないかも。
ゴミ掃除
・トークンとか無効なやつは削除してあげた方が良い。
殴り書き中ですが、今日はここまで。気が向いたら、続きを!
2019/03/07
AMAZON SNS 管理画面 UIが変わった・・・。
AMAZON SNS
今日アクセスしたら、昨日までみていた画面と変わっていて困惑中、、、
主に、google 関連のGCM → FCM に表記が変わって、きれいなUIになっている。
今日アクセスしたら、昨日までみていた画面と変わっていて困惑中、、、
主に、google 関連のGCM → FCM に表記が変わって、きれいなUIになっている。
2019/02/21
AMAZON SNS の証明書
AMAZON SNSでiOS用のプッシュ通知の証明書(.p12)は、
なぜかファイル名にマルチバイト文字があるとアップ時にエラーになる。
解決する方法は、半角英数字の文字のファイル名にすればアップできた。
なんだかなぁ。これくらいは対応してほしい。
なぜかファイル名にマルチバイト文字があるとアップ時にエラーになる。
解決する方法は、半角英数字の文字のファイル名にすればアップできた。
なんだかなぁ。これくらいは対応してほしい。
2019/02/08
【iOS】SwiftでCGAffineTransformから角度・ラジアン・度数・スケールを計算する方法
メモ
Swift 4 でtransformから角度、ラジアン、ディグリー、スケールを求める 忘れがちなので・・・。
let transform = view.transform
let radians = atan2(transform.b, transform.a)
let degrees = radians * 180 / .pi
let scale = sqrt(abs(transform.a * transform.d - transform.b * transform.c))
import CoreGraphics
extension CGAffineTransform {
var angle: CGFloat {
return atan2(b, a)
}
var radians: CGFloat {
return angle
}
var degrees: CGFloat {
return angle * 180.0 / CGFloat.pi
}
var scale: CGPoint {
return CGPoint(x: sqrt(a * a + c * c), y: sqrt(b * b + d * d))
}
}
// 例として、適当な CGAffineTransform を作成
let transform = CGAffineTransform(rotationAngle: CGFloat.pi/4).scaledBy(x: 2.0, y: 1.5)
let angleInRadians = transform.radians
let angleInDegrees = transform.degrees
let scale = transform.scale
print("Angle in radians: \(angleInRadians)")
print("Angle in degrees: \(angleInDegrees)")
print("Scale: \(scale)")
2024/06/14 、コメント多めに書き直してみた。
import CoreGraphics
// CGAffineTransformの拡張機能を定義
extension CGAffineTransform {
// 現在の変換の回転角度をラジアン単位で取得
var angle: CGFloat {
return atan2(b, a)
}
// 回転角度をラジアンで取得('angle'プロパティのエイリアス)
var radians: CGFloat {
return angle
}
// 回転角度を度数法で取得
var degrees: CGFloat {
return angle * 180.0 / CGFloat.pi
}
// 現在の変換のスケールをCGPointとして取得
var scale: CGPoint {
return CGPoint(x: sqrt(a * a + c * c), y: sqrt(b * b + d * d))
}
}
// 例として、回転とスケールを含むCGAffineTransformを作成
let transform = CGAffineTransform(rotationAngle: CGFloat.pi / 4).scaledBy(x: 2.0, y: 1.5)
// 回転角度をラジアンで取得
let angleInRadians = transform.radians
// 回転角度を度数法で取得
let angleInDegrees = transform.degrees
// スケールを取得
let scale = transform.scale
// 結果を出力
print("Angle in radians: \(angleInRadians)") // 出力: 回転角度(ラジアン)
print("Angle in degrees: \(angleInDegrees)") // 出力: 回転角度(度数法)
print("Scale: \(scale)") // 出力: スケール
2025/03/21 、AIに添削してもらった
import CoreGraphics
// CGAffineTransformの拡張機能を定義
extension CGAffineTransform {
// 現在の変換の回転角度をラジアン単位で取得
var angle: CGFloat {
// atan2(b, a)は、aが0の場合に問題が発生する可能性があるため、特別な処理を行う
let angle = atan2(b, a)
return angle
}
// 回転角度をラジアンで取得('angle'プロパティのエイリアス)
var radians: CGFloat {
return angle
}
// 回転角度を度数法で取得
var degrees: CGFloat {
return angle * 180.0 / CGFloat.pi
}
// 現在の変換のスケールをCGPointとして取得
var scale: CGPoint {
// より正確なスケールを求めるために、aとdの平均の平方根を使用する
let scaleX = sqrt(a * a + c * c)
let scaleY = sqrt(b * b + d * d)
return CGPoint(x: scaleX, y: scaleY)
}
}
// 例として、回転とスケールを含むCGAffineTransformを作成
let transform = CGAffineTransform(rotationAngle: CGFloat.pi / 4).scaledBy(x: 2.0, y: 1.5)
// 回転角度をラジアンで取得
let angleInRadians = transform.radians
// 回転角度を度数法で取得
let angleInDegrees = transform.degrees
// スケールを取得
let scale = transform.scale
// 結果を出力
print("Angle in radians: \(angleInRadians)") // 出力: 回転角度(ラジアン)
print("Angle in degrees: \(angleInDegrees)") // 出力: 回転角度(度数法)
print("Scale: \(scale)") // 出力: スケール2026/02/25 更にAIで添削
radians削除scaleの計算式を修正(scaleX = sqrt(a²+b²),scaleY = sqrt(c²+d²))- 不正確なコメントを削除・整理
import CoreGraphics
extension CGAffineTransform {
/// 回転角度をラジアン単位で取得
var angle: CGFloat {
return atan2(b, a)
}
/// 回転角度を度数法で取得
var degrees: CGFloat {
return angle * 180.0 / CGFloat.pi
}
/// スケールをCGPointとして取得
var scale: CGPoint {
let scaleX = sqrt(a * a + b * b)
let scaleY = sqrt(c * c + d * d)
return CGPoint(x: scaleX, y: scaleY)
}
}
// 使用例
let transform = CGAffineTransform(rotationAngle: CGFloat.pi / 4).scaledBy(x: 2.0, y: 1.5)
print("角度(ラジアン): \(transform.angle)") // 約 0.7854
print("角度(度数法): \(transform.degrees)") // 約 45.0
print("スケール: \(transform.scale)") // 約 (2.0, 1.5)2019/02/07
【iOS】UIViewの当たり判定( swift )
UIViewの当たり判定メモ
let myView:UIView = UIView
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let v = myView.hitTest(point, with: event)
return v
}
こんな感じで取れる。
あたって入ればvの中にはあたったViewが入ってる。
ハズレならnil
登録:
投稿 (Atom)

