TaillookTech

備忘録

ローカルのGitリポジトリをGitHubの管理下に置く

概要

ローカルで使っているGitHubに公開したくなったとき用メモ

手順

  1. GitHubで新しくリポジトリを作る
  2. git remote add origin 作ったリポジトリのURL
  3. git pull origin master
  4. git add .
  5. git commit -m "first commit"
  6. git push origin master

Electronでカラーピッカーを表示するメニューバーアプリを作る

概要

Electronでこんな感じのカラーピッカーを表示するメニューバーアプリを作る.
f:id:taillook:20170224202643p:plain

使ったもの

  • jscolor
    (カラーピッカーを表示するjavascriptライブラリ)
  • menubar
    (Electronでメニューバーアプリケーションを作るライブラリ)

GitHub

Taillook/MenuBar-ColorPicker

コード

main.js

const electron = require("electron");

const app = electron.app;

var menubar = require('menubar')

var mb = menubar()

mb.on('ready', function ready () {})

app.on('window-all-closed', () => {})

var shouldQuit = app.makeSingleInstance((argv, workingDirectory) => {})
if (shouldQuit) app.quit()

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <script src="jscolor.js"></script>
  </head>
  
  <body>
    Color:<input class="jscolor {hash:true}" value="ab2567">
  </body>
</html>

今回はメニューバーのアイコンしか使わないのでウィンドウの表示はしてないです.

git mergeでコンフリクトしたとき片方のブランチの変更を優先させる

片方の変更を優先してmerge (ファイル単位)

git mergeでコンフリクトがある場合リザルトでコンフリクトしたファイルの一覧が出力される.

$ git merge develop
Auto-merging Setting.py
CONFLICT (content): Merge conflict in Setting.py
Automatic merge failed; fix conflicts and then commit the result.

masterブランチにdevelopをマージしようとしてコンフリクトがあった場合こんな感じの出力が出る.
このときSetting.pyというファイルにコンフリクトあることがわかる.
ここで,masterを優先させる場合
git checkout --ours Setting.py
developを優先させる場合
git checkout --theirs Setting.py
を実行して
git add Setting.py
git commit
でコンフリクトが解決できる.

片方の変更を優先してmerge (まとめて)

まとめてコンフリクトを解決する場合,
masterを優先させる場合
git merge -Xours Setting.py
developを優先させる場合
git merge -Xtheirs Setting.py
でどちらかのブランチをまとめて優先させてマージできる.

UICollectionViewでカラフルなUITableView風のViewを作る

概要

UICollectionViewのセルの大きさをアレしてUITableViewっぽくする.

作ったもの

TableViewのようなもの
f:id:taillook:20170222164517p:plain

手順

  1. StoryBoardにUICollectionViewを設置
  2. DelegateとかDataSourceをViewControllerと結ぶ
  3. ViewControllerにコードを書く

解説

viewDidLoad()にUICollectionViewFlowLayout()のインスタンスを作成し,cellのlayoutを変更する.
このとき,cellの横幅を親ビューと同じサイズにする.
これによりTableViewのようなViewが作成できる.
cellの色はランダムに指定している.

コード

import UIKit

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
    @IBOutlet weak var CollectionView: UICollectionView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)
        layout.itemSize = CGSize(width: CollectionView.frame.size.width, height: CollectionView.frame.size.height/6)
        layout.minimumInteritemSpacing = 0
        layout.minimumLineSpacing = 0
        CollectionView.collectionViewLayout = layout
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
        let testCell:UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
        let r: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
        let g: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
        let b: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
        let color: UIColor = UIColor(red: r, green: g, blue: b, alpha: 1.0)
        testCell.backgroundColor = color

        return testCell
    }
    
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 99
    }
    
}

Swift3でランダムなUIColorを生成する

Obj-Cの記事しかなかったのでここに書く

コード

let r: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
let g: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
let b: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0
let color: UIColor = UIColor(red: r, green: g, blue: b, alpha: 1.0)

Gitでブランチ切ってマージ

備忘録

手順

  1. 現ブランチ確認
    git branch
  2. 最後のコミットまで戻る
    git checkout .
  3. ブランチの作成とチェックアウト
    git checkout -b develop/hoge
  4. develop/hogeで作業
  5. masterブランチに戻る
    git checkout master
  6. develop/hogeをマージ
    git merge develop/hoge
  7. リモートへpush
    git push origin master
  8. おわり

Xcode 8 とSwift 3 でライブラリを作成してCocoaPodsに公開する

はじめに

最近初めてCocoaPodsにライブラリを公開するってのをやりました.
Xcode8とSwift3での資料がなかった&わかりにくかったのでここに書きます.

ディレクトリ構成

グラフを描画するライブラリを作成する.

.
├── Demo
│   ├── Demo
│   │   ├── AppDelegate.swift
│   │   └── ...
│   └── Demo.xcodeproj
├── SimpleGraphs
│   ├── Info.plist
│   ├── SimpleGraphs.h
│   └── SimpleGraphs.swift
├── .swift-version
├── SimpleGraphs.podspec
├── SimpleGraphs.xcodeproj
├── LICENSE
└── README.md

手順

GitHubリポジトリ作成

  1. 作成するライブラリの名前のリポジトリを作成
  2. ローカルのディレクトリにクローン
  3. .gitignore.swift-versionを書く
    .swift-versionは今回Swift3.0を使うので3.0と書く
  4. LICENSEを書く
    今回はMITライセンス

ライブラリのプロジェクト作成

Framework&LibraryからCocoa Touch Frameworkを選択し作成(リポジトリ直下)

DEMOプロジェクト作成

  1. SimpleGraphs.xcodeprojと同じ階層にDEMOプロジェクト作成
    今回はSingleViewApplication
  2. デモを作りながら開発するのでライブラリのSwiftファイルをデモ用プロジェクトにリンクさせる
  3. ライブラリのコードを書く
    クラスやイニシャライザはpublicやopenなどのアクセス修飾子を付ける 参考

CocoaPodsで公開

  1. terminalでpod spec create https://github.com/Taillook/SimpleGraphsを実行しpodspecを生成する.
    SimpleGraphsのpodspec
  2. git tag 0.0.1git push --tagsを実行しバージョンのタグを付ける
  3. pod trunk register example@example.com 'なまえ'を実行しCocoaPodsにユーザを登録する
    メールが届くので,リンクを開いてアクティベーションする
  4. pod trunk meでセッションを確認する
    たぶんIPかMACアドレスでセッションが管理されてるんだと思う
  5. pod trunk push SimpleGraphs.podspecで公開する
Updating spec repo `master`
Validating podspec
 -> SimpleGraphs (0.0.1)

Updating spec repo `master`

--------------------------------------------------------------------------------
 🎉  Congrats

 🚀  SimpleGraphs (0.0.1) successfully published
 📅  February 12th, 19:37
 🌎  https://cocoapods.org/pods/SimpleGraphs
 👍  Tell your friends!
--------------------------------------------------------------------------------

登録に成功したらこんな感じの出力が出る