2020/01/21

【Flutter】Hello world !!

こんにちは、こんばんは、おはようございます。

今更感はありますが、

Flutter を はじめました。

そうです。

Hello world !!   やりました。

Flutter マスターです。

環境も作れたので、Flutterの仕事できる準備OKです。

Flutter って 何?  って方もいるかも知れませんが、

google が作成したフレームワークで、

いろんな、環境にも対応しているようです。

android,iOS,WEB,Desktop 

Flutter 公式サイト から、環境を構築して

さぁ 、皆さん Hello world !!    やろう。

2020/01/16

【iOS】MPMoviePlayerViewController iOS 13.3 え まだ使っているの?

MPMoviePlayerViewController って 過去の遺物になってます。

ええ、iOS 9 で非推奨になっています。

未だに、使ってい人がいるのでは?

はい!  使ってます。

iOS13.2 で 特定のパラメーターを設定すると、再生しない不具合があるようです。

別のに変更するってのが正しいのですが、共有しときます。

@property(nonatomic) MPMovieSourceType movieSourceType;

このパラメータですが、

MPMovieSourceTypeUnknown 以外のパラメータを設定すると再生されなくなります。

開くのですが、すぐに画面が閉じる現象になります。

あ、Xcode 10.3 で の事です。

Xcode 11.3 だと、 MPMoviePlayerViewController がもう存在しておらず、

処理を走らせると、強制終了します。

いや、だから、さっさと新しいのに変えればいいのだ。

2020年4月から Xcode 11 必須だしね。


2020/01/09

パチンコ、スロット業界

日本にカジノができたら、どうなるんだろうか。

スロットやパチンコとかは設置されないのかな?

ちょっと気になリます。

おそらく、棲み分けはちゃんとされると思いますが・・・。

実際はどうなんでしょうか?


2020年 あけましておめでとうございます。

いまさらですが、あけましておめでとうございます。

今年も、のんびりブログを掲載して行こうかと思いますので、

どうぞよろしくお願いいたします。

今年は、どんな開発(仕事)を行うか?

トレンドはどんな物なのか?

オリンピックでの開発需要増加はあるのか? (もう終わった?)

ソフトウェア開発はどんな方向に進むのか? 色々と楽しみです。



2019/11/21

【iOS】Swiftでtransformのスケールを制御! 最大・最小倍率の設定方法

メモですが・・・・。


let max = 10.0
let min = 0.5

let scale = sqrt(abs(self.transform.a * self.transform.d - self.transform.b * self.transform.c))
if(scale > max){
 self.transform = self.transform.scaledBy(x: max / scale, y: max / scale)
}else if(scale < min ){
 self.transform = self.transform.scaledBy(x: min / scale, y: min / scale)
}

2019/11/16

【iOS】指定の言語のStringを取得したい時


多言語化を実装されていて、とある要件で日本語の端末の状態で、
日本語と英語だった場合のStringがほしい時に書きました。
ja.lproj とか en.lproj とかを直接読み込んで、やってます。
引数に、 en とか iOS でローカライズ化した言語を指定する。
key は、ローカライズのkeyです。
エラー処理等は入れて無いので、適宜やってね。



func SelectLocalizeString(lang:String ,  key:String) -> String{

    let p:String? = Bundle.main.path(forResource: lang, ofType: "lproj")
    let b:Bundle? = Bundle(path: p!)
    return NSLocalizedString(key, tableName: nil, bundle: b!, value: key, comment: nil)
}

2019/11/14

【android】android OS アップデート保証期間

google の公式でさえ、約3年間 か。

企業からしたら、売り切りの商品だから気持ちわかる。

まぁ、それくらいのサイクルが妥当か。。。 てか、十分すぎる。

ほぼ、無償でOSのメンテを3年間もやってくれるなんて、すごいでしょ。




2019/11/05

嵐や本田翼のyoutube やっぱ芸能人はすげーや。

タイトル通りです、

いまさらながら、芸能人はすごいなぁと思いました。

音楽ならCD売れない時代、俳優、女優業も 1人しかいない都合、

映画やドラマも並行してできないし、他局に出る場合、同じ時間帯は出れないし、

などなど、色々と制約がある。

これから一気に、進出してくるのだろうと思います。

特に、事務所独自に、コンテンツの権利を持ってる場合は、

即配信できると思うので、最高の稼げる場所かと思います。

CMとか、テレビや別企業が絡んでいるものは、

権利上難しいので、 音楽業界はこうやって稼ぐのもありかなと。

あと、youtubeのJASRAC管轄の部分とか、どうなんだろう。

youtubeの収益の一部を、JASRACに支払いをしたりするのだろうか。

大好きな、女優さんとかの動画とか、公式にだしてくれないかなと思ったり。

全く、技術とは関係ないですが、思ったことを書きなぐりました。

共感して頂いた方は、ぜひ いいね  チャンネル登録をお願いします。

そうそう、youtube で 嵐が登録されたので、 youtube music でも聞けます!!

あと、音質はどうなのだろう、プロの方ぜひ教えてほしいです。

CDとか、有料で購入したほうが、音質とかは良いのかな?

以上、ながながと、読んでいただきありがとうございます。

2019/10/31

【iOS】iOS のローカライズファイルの件

多言語化対応などで、

Localizable.strings のファイルを対応言語分用意しますが、

みなさんはどのように、用意していますか?

地道に、コピペしたりしているのでしょうか?

プログラマーなら、簡単に出力できるようなやつがあったりしないかな?

よく、クライアントからいただく、翻訳データは、エクセルのものが多く、

そこから、コピペしていくのがすごく手間なんですよね。。。。

エクセルベースで簡単に出力できるように、できないかな・・・。

VBAでマクロ組んでも良い気がします。

需要があれば、作成して公開しても良いですね。


2019/10/29

【iOS】Swift iOS システムフォントの名前を取得ってどうやるの?


var name =  UIFont.systemFont(ofSize: 10).fontName


とりあえずこれでいいかな?
他に良い方法あるかな

【android】宣伝です。自作のandroidアプリをリリースしています。

android のアプリで、

youtubeのLiveしているチャット部分を表示するだけのアプリです。

何故か、1000 ダウンロード以上の実績があったりします。

https://play.google.com/store/apps/details?id=com.kixking1020.chatview_youtube_v2
需要があるのか無いのか、よくわからないです。

ぜひ試しに、インストールしてみてください。

日本のユーザーより、海外の方がインストールしているようです。

なぜだろう・・・。

2019/10/15

Made by Google '19

日本時間で 2019/10/15   23時からです。




・Pixel Buds       が 来年
・Google Stadia  が11月
・Pixel 4            


このへんで力尽きて寝てしまいました・・・・。

2019/10/13

台風19号 大丈夫ですか?

幸いなことに、我が家では強風で揺れはしましたが、
停電などもなく、無事です。

2019/10/05

macOS Catalina え? アプリ動かない?

ちゃんと設定すれば大丈夫そう。

未署名(公式の署名ではない)アプリは起動できないかも。

と思っていましたが、設定変更できる様子。

まぁ、すぐにOSは更新しないほうが良さそうだなぁ。

特に、開発で利用してるやつはなおさら、あげないほうが良いな。

2019/10/04

【iOS】UIViewControllerのライフサイクル (Swift)

いまさら聞けない、
Swift UIViewControllerのライフサイクル 

下記が主なイベント


class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        print("viewDidLoad")
    }    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("viewWillAppear")
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("viewDidAppear")
    }
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        print("viewWillLayoutSubviews")
    }
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        print("viewDidLayoutSubviews")
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        print("viewWillDisappear")
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("viewDidDisappear")
    }
}

下記のような感じに呼ばれます。


viewDidLoad
viewWillAppear
viewWillLayoutSubviews
viewDidLayoutSubviews
viewDidAppear

--  表示完了   

viewWillDisappear
viewDidDisappear

これくらい、余裕ですよね?
追記 prettyprint を追加したのでみやすいように下記追加しました。
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        print("viewDidLoad")
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("viewWillAppear")
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("viewDidAppear")
    }
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        print("viewWillLayoutSubviews")
    }
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        print("viewDidLayoutSubviews")
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        print("viewWillDisappear")
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("viewDidDisappear")
    }
}

下記のような順番でよばれます。

開始時

viewDidLoad
viewWillAppear
viewWillLayoutSubviews
viewDidLayoutSubviews
viewDidAppear

終了時

viewWillLayoutSubviews
viewDidLayoutSubviews
viewWillDisappear
viewWillLayoutSubviews
viewDidLayoutSubviews
viewDidDisappear


#ライフサイクル
#Lifecycle
#UIViewController
#Swift

【iOS】UILabelでヒラギノフォントの上下が切れる問題と対処法

iOS で開発していると、フォント指定がありますが、

ヒラギノフォントを指定した場合、

UILabel ( UIButton ) で表示しようとすると文字が切れるやつがいます。

特に、sizeToFit() を呼ぶと結構悲惨です。


切れる可能性がある文字たちは下記

gjpqyÄÖÜßĀĂĄąĆĈĊČĎŅ

gjの文字が消えないように検索したら、

他のサイトでは、

NSAttributedString.Key.baselineOffset: NSNumber(value:1.0)

とか位置少し上にずらして

attributedText に入れるとか記載がありますが完全ではありませんでした。

ÄÖÜ の「..」のなどの部分が切れてしまいます。 

そこで、どうしてもだめだったら、完全では無いですが、

下記を試して見てください。


clipsToBounds = false

意外と盲点だったりします。

まぁ、画面上下ピッタリの場合はだめかも知れませんが.


こんな感じに表示可能です。(赤が本来のViewの領域)

2019/10/01

【Stadia】Google Stadia でゲームがしたい。

日本のローンチが決まったら買います。やります。

ネット環境あればできるので、とても楽しみです。

さて、Google Stadia 日本はいつになることやら。。。

おそらく、PS5が出るまでには、日本対応するだろうかと思います。

それと、ソフトのラインナップがどれくらいになるかも気になるところ。

おそらく、PCをに移植されてるものなら、早いだろうと・・・。

海外では11月なので。 来年になるのかと思います。

英語のgoogle Store なら プレオーダできますが、

日本への発送は行っていないので、入手するには、輸入するしかない・・・。

日本国内でできるかは、わからないけどね。

まぁ、どうにかやる手段はあるだろうと思うけど。

結論は、正式リリースを待ちます。

2019/09/28

macOS Mojaveに更新したら、Gitコマンドが動かなくなった・・・・。

いやぁ。

びっくりした。

macOS Mojave へ 更新したら、Gitコマンドが使えなくなってた・・・。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

こんなんでてきてびっくり。
色々とgoogle 様にお伺いをたてたら。
ターミナルから下記を実行したら行けた。

xcode-select --install
ふー。  よかった。

2019/09/26

【iOS】ITMS-90683 リジェクトされた。

申請しようとして、怒られた件

ITMS-90683 は、ほとんどの場合、

Info.plist に利用する理由(目的)の記載が無いのが理由です。

端末のいろんな機能を利用する場合は必ず、記載するようにしましょう。


NSCameraUsageDescription
NSMicrophoneUsageDescription
NSPhotoLibraryUsageDescription
NSPhotoLibraryAddUsageDescription
NSAppleMusicUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSMotionUsageDescription
NSBluetoothPeripheralUsageDescription (  ~ iOS 12  )
NSBluetoothAlwaysUsageDescription  (  iOS 13 ~  )
NSCalendarsUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NFCReaderUsageDescription
NSFaceIDUsageDescription
NSVideoSubscriberAccountUsageDescription

2019/09/13

【iOS】iOS13 / iPadOS 13 対応端末について

メモ

iOS 13 対応端末は下記となりそうです。


  • iPhone 11
  • iPhone 11 Pro
  • iPhone 11 Pro Max
  • iPhone XS
  • iPhone XS Max
  • iPhone XR
  • iPhone X
  • iPhone 8
  • iPhone 8 Plus
  • iPhone 7
  • iPhone 7 Plus
  • iPhone 6s
  • iPhone 6s Plus
  • iPhone SE
  • iPod touch(第7世代)

iPadOS 13 対応端末は下記となりそうです。

  • 12.9インチiPad Pro
  • 11インチiPad Pro
  • 10.5インチiPad Pro
  • 9.7インチiPad Pro
  • iPad(第7世代)
  • iPad(第6世代)
  • iPad(第5世代)
  • iPad mini(第5世代)
  • iPad mini 4
  • iPad Air(第3世代)
  • iPad Air 2