요즘 뉴스에 메르스 라는 단어가 오르내리면서, 관심이 떠오르고 있는데요 메르스가 무엇인지 알아보겠습니다.


 메르스의 정식 명칭은 메르스코로나바이러스 [ MERS corona virus ] 으로 중동호흡기증후군 입니다.


 2012년 사우디아라비아에서 처음 발견된 뒤 중동 지역에서 집중적으로 발생한 바이러스로, 2003년 아시아에서 발생한 뒤 전 세계로 확산되며 800명 가까운 사망자를 낸 사스(중증급성호흡기증후군)와 유사한 바이러스 이며,


치사율은 30% 이상이며, 사스보다 치사율이 6배 가량 높다는 연구 결과와 감염자의 절반이 사망한 사례가 보고되면서 신종플루 사태 이후로 엄청난 파장을 몰고 오는 중이다.



사우디아라비아 보건부의 자료.
조사일자
7월 1일43명 감염292명 사망
7월 15일37명 감염295명 사망
8월 1일27명 감염298명 사망
8월 15일28명 감염299명 사망
9월 1일25명 감염302명 사망
9월 15일29명 감염302명 사망
10월 1일9명 감염320명 사망
10월 15일10명 감염324명 사망
11월 1일15명 감염337명 사망
11월 15일16명 감염342명 사망
12월 1일10명 감염350명 사망
12월 15일3명 감염355명 사망


 사스보다는 전파력이 약하다는게, 그나마 다행이네요.


 출처 : 위키피디아


칼로리 다이어트 어플(간편하고 빠른 검색 칼로리 다이어트 어플)



 이번 여름을 대비하여 칼로리가 대규모 업데이트를 하였습니다.


 이름하야 v5.0.2!


 5버전이 출시되면서 여러가지 기능이 출시되었는데요,


 가장 중요한소식! 더이상 칼로리만 검색하는 칼로리 어플은 저리가라~


 운동과 더불어 가장 중요한 식이요법! 그리고 식이요법의 핵심은 칼로리!


 이 칼로리를 체계적으로 관리할수있는 다이어리 기능이 업데이트 되었습니다.


 




칼로리 어플에서 이제는 칼로리 다이어리로?!


이제 매일매일 운동을 하듯이 칼로리를 매일마다 내가 먹은 칼로리를 확인할수있습니다.


목표 칼로리를 지정하여 내가 먹은 음식의 칼로리가


목표칼로리에서 안전하다면 안전함의 상징 초록색!


 목표칼로리에 근접한다면 경고표시인 노랑!


  초과하게되면 위험의 표시인 빨강색!


 눈으로 바로바로 확인할수있어 편리함을 증대하였습니다. 


이제 매일매일 단순히 칼로리만 확인하는 것이 아니라,


직접 내가 먹은 칼로리를 눈으로 확인하며 식사량을 조절할수있게 되었습니다.


이제 지방 너에게 정면으로 도전한다. 한번 붙어보자!!



두번째!


칼로리 어플만의 조금은 특별한 커뮤니티





커뮤니티 출시!

SNS , 페이스북 부럽지 않다!

칼로리 어플만에 특별한 커뮤니티! 다이어터들만에 이야기의 장이 열립니다.


사실 SNS, 페이스북에 비하면 조금 부끄러워요.. (....)


 하지만 부끄러면 뭐어때~ 우리끼리 재미있게 놀면 되는거지~~


 칼로리에 대한 궁금증 다이어트방법 등 궁금한 점이나 다이어트를 하면서 힘들었던점들을


 다른사람들과 나누다보면 힘들고 고독하기만 한 다이어트가 조금 아주 조금은 쉬워지지 않을까요?


 다이어트를 하는 다른사람들과 교감을 나누어 보아요!






도착하자마자 맥주한잔은 여행이 시작을 알리는 종소리기때문에


언제나 도착하면 맥주부터 한잔하고 시작합니다. ㅋㅋ


 


가서 엄청나게 먹엇더랬죠,


밤에 도착해서 우선 먹기부터 시작햇습니다.








 태국어를 몰라서..먹기만 했는데 맛은 오뎅? 오뎅 맞는 듯.ㅋ



 닭꼬치는 한국맛과 거의 비슷합니다.



 닭다리도 이렇게 팔더라구요 닭꼬치와 유사한맛












팟타이! 이건 적극 권장입니다. 저렴하고 맛도 괜찮아서 자주 사먹었어요









음..똠양꿍... 김밥천국같은데서 먹었는데..맛은...헐..ㅠ







오히려 매장보단 이런 길거리 음식이 더 맛있었어요~











누가 구글번역 돌려 있나?



홍합과 같이 출발



 태국에서 닭볶음탕맛을 보다니.ㅋㅋ 완전 닭볶음 맛이었습니다.















 따로 떨어져있던 통신사들의 앱스토어가 하나로 모이는 원스토어 프로젝트 진행합니다.


 앱스토어별로 하나씩 올리는게 여간 번거로운 일이 었는데,


 개발자로서 참 반가운 소식이네요


 



 이로써 시너지 효과로 사람들이 원스토어에 모여들지에대해서도 한번 쯤은 기대해볼만 할듯합니다.


 개발자 센터는 지금 오픈되어있어 미리 앱을 업데이트 할수있습니다.



 http://dev.onestore.co.kr




 1차로 U+ 스토어 입니다.





 androidannotations 에서 많이 사용되는것 위주로 정리해 두겠습니다.





 1. @EActivity


 안드로이드에서 가장 많이 사용되는 어노텐션입니다.


 androidannotations 을 사용하는 activity를 명령하는 어노텐션 입니다.


@EActivity

public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}


 위와 같이 명명 하시면 됩니다.


 또한 layout과 같이 사용하시려면 


 

@EActivity( R.layout.activity_main )

public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}



 내용 처럼 @EActivity( R.layout.activity_main ) 으로 사용 하시면 됩니다.


 이렇게 적용하신 다음에


 mainifests에서 activity 명을 activity_ 으로 수정해주시면 됩니다.




 변경해 주시면 오류가 뜨는데 이때 Build > rebuild project 하시면 오류가 사라집니다.



 rebuild project를 하시면 보이지는 않지만 androidannotations에서 자동으로


 "activity_" 라는 클래스를 생성하기때문에 정상적으로 표시되는 것을 확인하실수있습니다.


 




 2. @AfterViews


@AfterViews는 view에 대한 모든 내용이 완료된 이후에 호출됩니다.



@EActivity( R.layout.activity_main )

public class MainActivity extends ActionBarActivity {



    @AfterViews

    protected void init()

    {

    }

}



 위 처럼 사용하시면 됩니다.


 주의 하실점은 androidannotations에서 MainActivity_라는 클래스를 생성하여


 MainActivity에 접근하기때문에 private를 사용할경우 오류가 발생합니다.


 public 또는 protected 만 사용이 가능합니다.





 3, @ViewById


 @ViewById는 안드로이드에서 사용했던 findViewById의 절차를 간소한 어노텐션입니다.


protected TextView tvMain;


    @Override

    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);

        tvMain = (TextView) findViewById( R.id.tvMain );

    }



 처럼 사용했던 기존에 방식에서 @ViewById를 사용함으로써 간소화 하는 방식입니다.



 사용법은


     @ViewById

    protected TextView tvMain;


 처럼 사용하시면 됩니다. 위처럼 사용하시면 R.id.tvMain 이란 객체를 찾아 tvMain 변수에 넣어줍니다.



    @ViewById ( R.id.tvMain )

    protected TextView tvMain;



 또한 위처럼도 사용이 가능합니다.




 4. @Click

 

 기존에 사용하던 버튼을 사용하던 방식에서 크게 간소화 되었습니다.


protected TextView tvMain;


    @Override

    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);

        tvMain = (TextView) findViewById( R.id.tvMain );

        tvMain.setOnClickListener( new View.OnClickListener(){

            @Override

            public void onClick(View v) {

                Log.i(TAG , "tvMainClick");

            }

        });

    }


 

 사용 방식은

 

@Click( R.id.tvMain )

    protected void tvMainClick()

    {

        Log.i(TAG , "tvMainClick");

    }


 입니다. 기존에 사용할때, 아이디 지정및 객체 생성등의 필요없는


 내용이 사라짐으로써 코드량이 확 주는 것을 확인 하실수 있습니다.





 안드로이드 스튜디오( Android Studio )에다가 androidannotations 적용하기가 여간 까다롭네요.


 이전에 올라왔던 글들을 보면 업데이트가 되서 그런지 않되는 경우가 많이 있구요,


 그래서 최신버전으로 다시 적용 방법을 보겠습니다.


 이글은 2015-05-04일에 작성되었습니다.


 

 우선 프로젝트를 생성한 이후 Gradle Scripts를 확인해 보시면 build에 관련하여


 두개의 gradle을 확인 하실 수있습니다.




 두개의 gradle중 Module: app 을 선택하여 진입합니다.



 


 프로젝트 생성시 기본적인 셋팅이 되어있는 것을 확인 하실수 있습니다.


 우리는 androidannotations를 셋팅하기위해서 gradle 의 내용을 바꾸어 줘야 합니다.


 


buildscript {

    repositories {

        mavenCentral()

    }

    dependencies {

        // replace with the current version of the Android plugin

        classpath 'com.android.tools.build:gradle:1.0+' // 버전에 맞게 변경.

        // the latest version of the android-apt plugin

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

    }

}


repositories {

    mavenCentral()

    mavenLocal()

}


apply plugin: 'android'

apply plugin: 'android-apt'

def AAVersion = '3.3' // 현재 최신버전 3.3으로 되어있으나 버전에 따라 변경.


dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:22.0.0'

    apt "org.androidannotations:androidannotations:$AAVersion"

    compile "org.androidannotations:androidannotations-api:$AAVersion"

    compile 'org.androidannotations:androidannotations:3.3'

}


apt {

    arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName '[현재 프로젝트의 패키지]'

    }

}


android {

    compileSdkVersion 21

    buildToolsVersion '22.0.1'


    defaultConfig {

        applicationId "[현재 프로젝트의 패키지]"

        minSdkVersion 9

        targetSdkVersion 21

        versionCode 1

        versionName "1.0"

    }


    buildTypes {

        release {

            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'),

                    'proguard-rules.txt'

        }

    }


    packagingOptions {

        exclude 'META-INF/ASL2.0'

        exclude 'META-INF/LICENSE'

        exclude 'META-INF/license.txt'

        exclude 'META-INF/NOTICE'

        exclude 'META-INF/notice.txt'

    }


    sourceSets {

        main {

//            manifest.srcFile 'src/main/AndroidManifest.xml'

//            java.srcDirs = ['src/main/java']

//            resources.srcDirs = ['src/main/resources']

//            res.srcDirs = ['src/main/res']

//            assets.srcDirs = ['src/main/assets']

        }

    }




위에 내용으로 바꾸어 줍니다.


 버전에 맞게 내용을 변경 하시면 됩니다.


 그리고 [현재 프로젝트의 패키지]를 자신의 프로젝트에 맞게 변경하시면 됩니다.


 제가 사용하는 패키지는 "tc.wo.mbseo.applyandroidannotations" 이기 때문에 맞게 변경합니다.



apt {

    arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName 'tc.wo.mbseo.applyandroidannotations'

    }

}



defaultConfig {

        applicationId "tc.wo.mbseo.applyandroidannotations"

        minSdkVersion 9

        targetSdkVersion 21

        versionCode 1

        versionName "1.0"

    }

 


 

 저장한 이후 rebuild project 합니다.

 




 이제 실행하시면 됩니다.






 위와 같이 나오면 정상적으로 적용된것입니다.






 


<a.php>

<?php

echo '감자';

?>



a.php라는 php 파일을 불러오기위해서는 include 라는 명령문을


 쓰신후 뒤에 경로를 입력하시면 됩니다.


include '[파일경로]'



<b.php>

<?php

include 'a.php';

echo '고구마';

?>



이후에 localhost/b.php 를 호출하시면 화면상에


 감자고구마


 라고 쓰여지는 페이지가 뜨는 것을 확인 하실수 있습니다.

http://sqlitebrowser.org/






사이트로 이동하여 os에 맞는 파일을 다운로드 이후 설치합니다.




 


open Database를 선택한 이후 [파일명].db 파일을 선택합니다.





 Browse Data 탭을 선택하시면 db를 확인하실수 있습니다.




 테이블을 선택하시면 만들어져있는 테이블을 확인하실수 있습니다.




 안드로이드 스튜디오에서 타겟에있는 DB 확인하는 방법.


 



아이콘 클릭.





DB 내용을 확인할 타겟을 지정합니다.








이후 File Explorer 를 선택하여 타겟 내부정보를 확인합니다.



경로 data/data/[어플리케이션 패키지]/databases/[지정한 db명].db 선택






db 파일을 선택하여 db 내용을 로컬로 가져와서 확인하시면 됩니다.


db 파일을 확인하는 방법이 궁금하시면,


sqlite database browse사용하기 



으로 가시면 됩니다.






build.gradle 파일 수정





buildscript {

    repositories {

        mavenCentral()

    }

    dependencies {

        classpath 'com.android.tools.build:gradle:1.0.0'

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

    }

}


repositories {

    mavenCentral()

    mavenLocal()

}


apply plugin: 'com.android.application'



dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')

    compile 'com.android.support:appcompat-v7:22.0.0'

    compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'

}


apt {

    arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName 'tc.wo.mbseo.springtest'

    }

}


android {

    compileSdkVersion 21

    buildToolsVersion "22.0.1"


    defaultConfig {

        applicationId "tc.wo.mbseo.springtest"

        minSdkVersion 9

        targetSdkVersion 21

        versionCode 2

        versionName "1.1"

    }


    buildTypes {

        release {

            minifyEnabled  false

            proguardFiles getDefaultProguardFile('proguard-android.txt'),

                    'proguard-rules.txt'

        }

    }


    packagingOptions {

        exclude 'META-INF/ASL2.0'

        exclude 'META-INF/LICENSE'

        exclude 'META-INF/license.txt'

        exclude 'META-INF/NOTICE'

        exclude 'META-INF/notice.txt'

    }

Structure

    sourceSets {

        main {

        }

    }

}



 이후 Build -> Rebuild Project 

+ Recent posts