태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

ChoboTimer V0.17 으로 업데이트 하였습니다. 

* 타이머에 메모를 넣을수 있도록 수정하였습니다.

chobotimer_td2.zip
8.66MB

ChoboTimer에 대한 자세한 내용은 아래 링크를 참고하세요.

https://chobocho.tistory.com/2461431

'Coding > Python 삽질기' 카테고리의 다른 글

[ChoboTimer] Version 0.17 Release  (0) 2020.04.22
[Python] venv 사용  (0) 2020.04.15
[ChoboTimer] 타이머 앱 만들기  (0) 2020.02.29
Minim / 간단한 메모관리 툴 (TA1)  (0) 2020.01.16
Posted by chobocho

댓글을 달아 주세요

// 만들기
python -m venv ./snake_game

// 실행
cd \snake_env\Scripts
activate.bat

// 종료하기
deactivate.bat

'Coding > Python 삽질기' 카테고리의 다른 글

[ChoboTimer] Version 0.17 Release  (0) 2020.04.22
[Python] venv 사용  (0) 2020.04.15
[ChoboTimer] 타이머 앱 만들기  (0) 2020.02.29
Minim / 간단한 메모관리 툴 (TA1)  (0) 2020.01.16
Posted by chobocho

댓글을 달아 주세요

Android studio에 있는 유용한 기능을 공유해 봅니다.

1. Alt + 2 : Favorites 표시

자주 참고하는 파일들을 모아서 관리 할 수 있다

 

2. F11 : Bookmark

   Shift + F11 : 모든 Bookmark 표시

 

'Coding > Tip' 카테고리의 다른 글

[Android studio] 사용 팁  (0) 2020.04.13
사무직을 위한 Git 활용 법  (0) 2018.10.27
[GIT] 특정 폴더만 받아오기  (0) 2017.07.22
Windows 10에서 글자가 사라지는 현상  (0) 2017.06.15
Posted by chobocho

댓글을 달아 주세요

몇 년 전에 만들었던, 마작 게임을 껍데기만 빼고 다 바꿔 보았다.

PlayStore:  https://play.google.com/store/apps/details?id=com.chobocho.ColorMatch

Source code: https://github.com/chobocho/ImageMatch

마작 게임 스크린 샷

 

1. 전체 패키지 구조는 아래와 같다

간단한 패키지 구조도

 

2. 이중 마작게임의 State diagram은 아래와 같이 구상 했다.

스테이트 다이어그램

 

3. 그리고 아래와 같이 Class diagram 을 작성했다.

 

Posted by chobocho

댓글을 달아 주세요

Android로 APK를 생성하면서 자동으로 파일 이름 생성 및 버전 명을 업데이트 하는 스크립트를 구성해 보았다

미래의 나를 위하여 기록을 남긴다

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    def versionPropsFile = file('versioninfo.properties')
    def Properties versionInfo = new Properties()

    if (versionPropsFile.canRead()) {
        versionInfo.load(new FileInputStream(versionPropsFile))
    } else {
        versionInfo['VERSION_HEADER'] = "0.1105"
        versionInfo['VERSION_NUMBER'] = 1
        versionInfo['VERSION_COUNT'] = 1
        versionInfo['BUILD_COUNT'] = 0
    }

    def versionHeader = versionInfo['VERSION_HEADER']
    def versionNubmer = versionInfo['VERSION_NUMBER'].toInteger()
    def versionCount = versionInfo['VERSION_COUNT'].toInteger()
    def buildCount = versionInfo['BUILD_COUNT'].toInteger()

    def taskName = gradle.startParameter.taskNames
    def addVersion = 1
    def isReleaseVersion = false

    if (":app:bundleRelease" in taskName) {
        println '---[bundleRelease]---'
        versionNubmer += addVersion
        versionCount += addVersion
        isReleaseVersion = true
    }

    buildCount += addVersion

    versionInfo['VERSION_HEADER'] = versionHeader.toString()
    versionInfo['VERSION_NUMBER'] = versionNubmer.toString()
    versionInfo['VERSION_COUNT'] = versionCount.toString()
    versionInfo['BUILD_COUNT'] = isReleaseVersion ? "1" : buildCount.toString()

    versionInfo.store(versionPropsFile.newWriter(), null)

    def date = new Date();
    def alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    def thisYear =  alphabet.charAt(date.getYear() + 1900 - 2001)
    def thisMonth = alphabet.charAt(date.getMonth())

    println '-------------------'
    println taskName
    println "${versionHeader}.${thisYear}${thisMonth}${versionCount}.${buildCount}"
    println '-------------------'

    defaultConfig {
        applicationId "com.chobocho.ColorMatch"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode versionNubmer
        versionName "${versionHeader}.${thisYear}${thisMonth}${versionCount}.${buildCount}"
        setProperty("archivesBaseName", "imagematch_$versionName")
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

미래의 우둔한 나를 위하여, 주석을 남긴다.

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    // 프로퍼티 파일 이름
    def versionPropsFile = file('versioninfo.properties')
    def Properties versionInfo = new Properties()

    if (versionPropsFile.canRead()) {
        versionInfo.load(new FileInputStream(versionPropsFile))
    } else {
        // 프로퍼티 파일이 없으면 생성을 하기위해 기본 값을 설정한다
        versionInfo['VERSION_HEADER'] = "0.1105"
        versionInfo['VERSION_NUMBER'] = 1
        versionInfo['VERSION_COUNT'] = 1
        versionInfo['BUILD_COUNT'] = 0
    }

    def versionHeader = versionInfo['VERSION_HEADER']
    def versionNubmer = versionInfo['VERSION_NUMBER'].toInteger()
    def versionCount = versionInfo['VERSION_COUNT'].toInteger()
    def buildCount = versionInfo['BUILD_COUNT'].toInteger()

    def taskName = gradle.startParameter.taskNames
    def addVersion = 1
    def isReleaseVersion = false

    // Signed APK 빌드인 경우만 versionCount를 증가 시킨다
    if (":app:bundleRelease" in taskName) {
        println '---[bundleRelease]---'
        versionNubmer += addVersion
        versionCount += addVersion
        isReleaseVersion = true
    }

    buildCount += addVersion

    // 수정된 값을 프로퍼티에 업데이트 한다
    versionInfo['VERSION_HEADER'] = versionHeader.toString()
    versionInfo['VERSION_NUMBER'] = versionNubmer.toString()
    versionInfo['VERSION_COUNT'] = versionCount.toString()
    versionInfo['BUILD_COUNT'] = isReleaseVersion ? "1" : buildCount.toString()

    versionInfo.store(versionPropsFile.newWriter(), null)

    // 빌드한 연도와 월을 남기기 위한 부분
    // 2001년 1월 > AA
    // 2020년 3월 > TC
    def date = new Date();
    def alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    def thisYear =  alphabet.charAt(date.getYear() + 1900 - 2001)
    def thisMonth = alphabet.charAt(date.getMonth())

    println '-------------------'
    println taskName
    println "${versionHeader}.${thisYear}${thisMonth}${versionCount}.${buildCount}"
    println '-------------------'

    defaultConfig {
        applicationId "com.chobocho.ColorMatch"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode versionNubmer
        // 버전명 정보 -> 0.1105.TD1.2
        versionName "${versionHeader}.${thisYear}${thisMonth}${versionCount}.${buildCount}"
        // 생성 되는 파일이름을 설정한다
        setProperty("archivesBaseName", "imagematch_$versionName")
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

'Tip > Android' 카테고리의 다른 글

[Gradle] Version 명 자동 업데이트  (0) 2020.04.11
[ChooseOne] 안드로이드 제비뽑기 앱 만들기 (I)  (0) 2019.09.02
Posted by chobocho

댓글을 달아 주세요

이번 주말도 방콕을 하면서, 10년전에 만들었던 게임을 Java와 Android 버전으로 개선해 보았다.

10년전 코드를 보면서 참 부끄러웠고, 지금도 별반 차이게 없는게 안타까웠다.  ㅠㅜ 

Android Mahjong 버전 (안드로이드 마작)

PlayStore:  https://play.google.com/store/apps/details?id=com.chobocho.ColorMatch

Source code: https://github.com/chobocho/ImageMatch

 

Posted by chobocho

댓글을 달아 주세요

지난주에 만들었던 솔리테어 게임을 Android로 포팅해 보았다.

Download:  https://play.google.com/store/apps/details?id=com.chobocho.solitaire

Java 솔리티어 게임 만들기 : https://chobocho.tistory.com/2461434?category=9608

Source code : https://github.com/chobocho/solitaire2

 

chobocho/solitaire2

Android solitaire. Contribute to chobocho/solitaire2 development by creating an account on GitHub.

github.com

Posted by chobocho

댓글을 달아 주세요

주말에 만들었던 Freecell을 안드로이드 용으로 포팅을 해보았다.

Download : https://play.google.com/store/apps/details?id=com.chobocho.cardgame

https://chobocho.tistory.com/2461436

 

[Java] Freecell 만들기 (자바 프리셀 만들기)

이번주도 봄이 왔으나 집에서 방콕을 하면서, 프리셀 게임을 만들어 보기로 했다. Source cdoe 위치: https://github.com/chobocho/freecell 실행파일: 어떻게 만들었나 1. Class 다이어그램 2. GUI 설계 3...

chobocho.tistory.com

UI 해상도만 손봐주면 되어서 2시간 정도면 될 줄 알았는데... 삽질을 하다보니 4시간이나 걸렸다. ㅠㅜ

Source : https://github.com/chobocho/freecell/tree/master/src/cardgame

 

chobocho/freecell

Freecell game. Contribute to chobocho/freecell development by creating an account on GitHub.

github.com

Posted by chobocho

댓글을 달아 주세요