ShintaBlog

このブログは主にswiftやiosアプリ開発に関して情報を発信したいと思い始めたブログです。

MacのTerminalでgithubのブランチ名を表示させる

今回は題名の通りTerminalにブランチ名を表示します。

設定はめちゃくちゃ簡単です。それでは早速やっていきましょう!

 

① gitをInstallしていない人はInstall

brew install git

 

②  .bashrcをイジイジ

vim .bashrc

    中にこれを追加 

 source /usr/local/etc/bash_completion.d/git-prompt.sh

source /usr/local/etc/bash_completion.d/git-completion.bash

GIT_PS1_SHOWDIRTYSTATE=true

export PS1='\h\[\033[00m\]:\W\[\033[31m\]$(__git_ps1 [%s])\[\033[00m\]\$ '

 

③ 追加したものを反映

source ~/.bashrc

 以上です。

 

近況報告

フィリピンから帰って来たばかりではありますが、現在大学を休学し東京のスタートアップでiOSエンジニアのインターンをしています。1年間のインターンなのでかなり長いですが、それなりにスキルはつけてくるのでブログの記事がみなさまの所に届く時を楽しみにしています。

使っているものとしてはR.Swift,RxSwift,等を使っているので、それらに関する記事が書けたら良いなと思っております!!

それではまた次回!!

配列をSwiftyJSONでPathな話(前回のおまけ)

今回は前回に引き続きSwiftyJSONの話です。

前回はXAMPPを用いてローカルサーバーを立ち上げてSwiftyJSONでローカルサーバーにあるJSONファイルを変換してって感じでした。

 

 前回の記事

shinta1209.hatenablog.com

 

今回は実際にネットに転がっているJSONファイルを取得して表示させましょう。

 

① まず前回同様 SwiftyJSONをインストールします

 

② 全体のコード

まず全体のコードはこんな感じです。

次から一つずつ見て行きます。

(そして今回取得するJSONはこちら →)  http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830068 

import UIKit
import SwiftyJSON

class ViewController: UIViewController {
   
      let stringUrl = "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830068"

    @IBAction func startParth(_ sender: Any) {
        
        // 取得したURLをURL型に変換
        let url = URL(string: stringUrl)
        
        // 変換したurlをリクエストするために変換
        //URLRequest型
        let request = URLRequest(url: url!)
        
        // HTTPセッションを作成
        let session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: OperationQueue.main)
        
        // HTTP通信を実行する
        // sessionを使ってrequestをdataに代入する
        // dataにJSONデータが入るらしい
        let task:URLSessionDataTask = session.dataTask(with: request, completionHandler: { data, responce, error in
            
            if error != nil {
                print(error)
                return
            }
            //メインスレッドで処理
            DispatchQueue.main.async {
                
            let json = JSON(data!)
            
                print("JSONの中身をまず全て表示")
                
                print("\(json)\nJSONの中身はここまで\n")
                
                print("resultのkana1の中身を参照")
                //JSONの配列名[0]で中身を参照できる["kana1"]はresultsの中にあるvalueのキー値
                //配列が複数ある場合はjson["results"][0]とjson["results"][1]等で配列を指定できる
                print("\(json["results"][0]["kana1"])\nkana1の中身だよん\n")
                
                print("zipcode取得")
                
                print("\(json["results"][0]["zipcode"])\nzipcodeだよん")
            
            }
        })     
        task.resume()     
  }
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
  }
} 

 

③ SwiftyJSONのimport

import SwiftyJSON

 

これをせずにはSwiftyJSONは使えませんから、忘れずにimportしましょう。

 

④ ターゲットのURLを格納

  let stringUrl = "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830068"

 

⑤  ターゲットURLをURL型、URLRequest型に変換

// 取得したURLをURL型に変換
let url = URL(string: stringUrl)      
// 変換したurlをリクエストするために変換
 let request = URLRequest(url: url!)

 

⑥ HTTPセッションを作成

 // HTTPセッションを作成
        let session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: OperationQueue.main)

 

⑦ HTTP通信を実行する

 // HTTP通信を実行する
 // sessionを使ってrequestをdataに代入する
 // dataにJSONデータが入る
 let task:URLSessionDataTask = session.dataTask(with: request, completionHandler: { data, responce, error in
          
//errorがあれば吐き出す if error != nil { print(error) return }

//メインスレッドで実行 DispatchQueue.main.async {
//jsonにJSON型のdataを代入する let json = JSON(data!) print("JSONの中身をまず全て表示") print("\(json)\nJSONの中身はここまで\n") print("resultのkana1の中身を参照") //JSONの配列名[0]で中身を参照できる["kana1"]はresultsの中にあるvalueのキー値 //配列が複数ある場合はjson["results"][0]とjson["results"][1]等で配列を指定できる print("\(json["results"][0]["kana1"])\nkana1の中身だよん\n") print("zipcode取得") print("\(json["results"][0]["zipcode"])\nzipcodeだよん") } }) task.resume() }

 

 こんな感じです。

 基本的には

 → URLを型変換して→ HTTPセッションを作成して → JSON解析開始

みたいな感じです。

自分もまだSwiftyJSONを触ったばかりなので、こんな書き方がいいよーとかがあれば是非コメントをください。

次はSwiftyJSON & Alamofireを使って解析して見ようと思います。

XAMPPでローカル環境作って、SwiftyJSONを使ってJSONの取得と余談。

久しぶりの投稿です。

 

今回はSwifyJSONで

 ローカルサーバー(XAMPP)を使う → ローカルにJSONファイルを置いて → SwiftyJSONでJSONを取得 → Labelに追加

を実装したので、自分用のメモ or JSON初心者の方に向けてお送りいたします。笑

 

 〜〜 余談 〜〜

現在、フィリピンのセブ島にて3週間エンジニア留学をしています。コースはSwiftでiOSアプリを作るコースです。

うちの大学は2年の後期から研究が始まるので、Swift復習がてら +α 英語も勉強するか的な感じでセブに来ています。

僕は初海外なのですが、来て最初に感じた事は海外ヤベェです。笑

とにかく日本と違いすぎてビックリしています。海も綺麗、飯もまぁ美味い、人がフレンドリー、etc......  とりあえずセブはいい所です!!

 

エンジニア留学ではみんなで話し合いながらプログラミングをしてアプリを作るのでかなり楽しいです。笑

他人のアイデアを聞いたり、あれこれ言い合いながらプログラミングがこんなに楽しいとは思いませんでした。ずっと独りでプログラミングをしていたので、新たな刺激になってやる気がかなり出て来ます。

シュノーケリングや滝にも行ったので後日、写真をUPしたいと思います!

 

エンジニア留学オススメです!!(下記リンク)

nexseed.net

 

余談が長くなってしまいました。。。   そろそろ本題に入りましょう!!

 

XAMPPでローカル環境構築

 

ここはググればすぐ出てくるので、飛ばします。

参考リンクを一応貼っておきます。

 

Windowsの方はこちら 〜

techacademy.jp

 

Macの方はこちら 〜

www.koreyome.com

 

〜〜 文字化け対策 〜〜

bistro.site

 

②  ローカルサーバーにJSONファイルを置く

 

任意のディレクトリにJSONファイルを置きます。

自分の場合はhtdocsにtest.jsonという名前で置きました。

 

f:id:ht16a017:20170909024413p:plain

 

中身はこんな感じで簡単なJSONファイルです。

 

Xcodeでプロジェクトを作成して、SwiftyJSONをインストール

 cocoapodsを利用してPodfileにSwiftyJSONを追加。

use_frameworks!

pod 'SwiftyJSON'

 

 インストールに成功したら一旦Xcodeを閉じます。

白色のプロジェクトファイルが追加されるので、それを開きます。

 

こんな感じのプロジェクトです  ↓

 

f:id:ht16a017:20170909161759p:plain

 

 

 ④ SwiftyJSONをインポート → ローカルサーバーのURLを指定して非同期処理を行う、配列の中身をindexOfで検索してJSONファイルと一致していれば、Labelに表示する。

 

みたいな流れです。

コードはGithubに載せときました。

 

github.com

 

これからもボチボチ上げていくのでよろしくお願いします。

 

おまけ

これはマクタンからバスで約4時間、モアルボアルってとこの海です。

シュノーケリングしてたらウミガメに遭遇したり、ニモがいたり.....etc

その写真やその他諸々の写真は又後日アップします!!!

f:id:ht16a017:20170909170847j:plain



 

 

 

 

 

 

 

 

Red Hot Chili Peppers By The Way 弾いてみた。

こんばんわ!今回は 『Red Hot Chili Peppers By The Way 弾いてみた。』

ということでベース弾いてみました!!

バンドを高校からしているので、たまには動画をあげてみようと思い撮ってみました!!

是非みてくださいね〜〜〜〜〜

 


Red Hot Chili Peppers ~By The Way~

 

貼っときます!!

こちらのベース動画もちょくちょくあげて行く予定なのでよろしくです!!

xcodeでStatusBarの色を変更する

みなさん、こんにちは。

今回はxcodeにてStatusBarの色を変更する際の設定(手順)を説明したいと思います!(自分のメモ用でもあります。笑)

さぁまず、StatusBarとは何ぞや??

という方もいらっしゃる(多分いない)と思います。

StatusBarとはアプリを起動した時のここの事です!

f:id:ht16a017:20170322125657p:plain

これですね!笑

ここの事をStatusBarと言います。

背景の画像やUIによってStatusBarの色を変えたいという方もいらっしゃると思います。自分がそうでした。

私が作ったバスアプリのStatusBarの色がデフォルトで黒だったので友達から背景画像のこの色でStatusBarがこの色だとかなり見辛いと言われました。笑

f:id:ht16a017:20170322125929p:plain

それでこのStattusBarを変更しようと思った訳です。ネット上にも情報はたくさんあるんですが、自分用のメモとして今回はブログにしました。

手順は非常に簡単です!

今から説明していきますね!

まず最初にTARGETSの最初にある項目のGeneralを選択します。

その次にDeployment InfoにあるStatus Bar Styleを選択してDefaultからLightに変更します。(下記の画像を参考)

f:id:ht16a017:20170323101139p:plain

 

次info.plistを選択してStatus bar Styleを選択し右をUIStatusBarStyleLightContentに変更!(下記画像を参考に)

f:id:ht16a017:20170323101321p:plain

こうする事でStatusBarが白になった事が確認できると思います!

非常に簡単なので是非みなさんも試して見てください!!

また自分のペースでメモやiOS,Swiftやアプリ開発などについて投稿していきたいと思います!!

ありがとうございました^^

 

 

Swift 『配列から現在時刻に一番近い時刻をString型で取ってくる』

こんばんわ!バスアプリを作った時に配列から現在時刻から一番近い時刻をString型で取ってくるというのに苦戦しました。

一番近いものだとマイナスの時刻。つまり現在時刻は11時45分で次の発車は12時だとしても、前の時刻が11時40分だと11時40分を取ってくるという訳で使い物にならないのでそこにも対応しております。笑

もし同じようなプログラム探していたりする人の役に立てれば光栄です。

一緒にアプリ作ったりする人募集しています!!

是非ここまでご連絡を!! ---->  ht16a017@oecu.jp

 

本題のソースコードはこちらです!

 

func result1() -> String {

        

        let timeFormatter = DateFormatter()

        timeFormatter.dateFormat = "HH:mm:ss"

        let nowString = timeFormatter.string(from: NSDate() as Date)

        let nowTime = timeFormatter.date(from: nowString)!

        

        let jikokuArray: [(String, String)] = [("Next Bus  AM","9:10:00"),("Next Bus  AM","9:50:00"),("Next Bus  AM","10:10:00"),("Next Bus  AM","10:50:00"),("Next Bus  AM","11:10:00"),("Next Bus  AM","11:30:00"),("Next Bus  AM","11:50:00"),("Next Bus  PM","12:10:00"),("Next Bus  PM","12:50:00"),("Next Bus  PM","13:10:00"),("Next Bus  PM","14:10:00"),("Next Bus  PM","15:10:00"),("Next Bus  PM","15:20:00"),("Next Bus  PM","15:50:00"),("Next Bus  PM","16:05:00"),("Next Bus  PM","16:42:00"),("Next Bus  PM","16:50:00"),("Next Bus  PM","16:55:00"),("Next Bus  PM","17:00:00"),("Next Bus  PM","17:05:00"),("Next Bus  PM","17:50:00"),("Next Bus  PM","18:05:00"),("Next Bus  PM","18:35:00"),("Next Bus  PM","18:50:00"),("Next Bus  PM","19:05:00"),("Next Bus  PM","19:35:00"),("Next Bus  PM","19:50:00"),("Next Bus  PM","20:05:00"),("Next Bus  PM","20:35:00"),("Next Bus  PM","21:05:00")]

        

        let resultArray: [(String, String)] = jikokuArray.flatMap({

            let diff = timeFormatter.date(from: $0.1)

            return nowTime.timeIntervalSince(diff ?? nowTime) > 0 ? nil : $0

        })

        

        if resultArray.count > 0, let result = resultArray.first {

            return "\(result.0):\(result.1)"

        } else {

        //ここはダイヤ配列にその日の次の時刻がもう無い時に出力されます

            return "本日のダイヤは終了しました。"

        }

}

自分の作ったアプリが公開されました!

お久しぶりです。2回目の投稿です!(多分読んでる方はいらっしゃらないとおもいますが。笑)

自分が作ったアプリ、OdenBubsが何回かリジェクトされたのですが、何とかAppStoreで公開されました!

 

このアプリを通してキャンパスライフが便利になればいいなと思ってます!

 

リンク貼っておくのでご意見ご感想お願いいたします!

OdenBus

OdenBus

  • shintarou okumura
  • ナビゲーション
  • 無料