자마린 다 좋은데 앱 로딩이 좀 늦다


로딩 타임 줄이는 방법이라는데...


1. 로컬 리소스 먼저 불러오기


2. assets 최적화


3. 당장 필요 없는 리소스는 천천히 로딩하기


4. xaml 컴파일 

앱 레벨

using Xamarin.Forms.Xaml;

...

[assembly: XamlCompilation (XamlCompilationOptions.Compile)]

namespace PhotoApp

{

  ...

}


클래스 레벨

using Xamarin.Forms.Xaml;

...

[XamlCompilation (XamlCompilationOptions.Compile)]

public class HomePage : ContentPage

{

  ...

}


5. Number of Assemblies를 줄이라는데
패키지 사용 줄이라는 뜻인 듯

출처 :
https://blog.xamarin.com/5-ways-boost-xamarin-forms-app-startup-time/



다국어 지원 타자연습 앱

한국어, 중국어, 일본어, 영어


키보드는 따로 설정해야 함


안드로이드 버전 :

https://play.google.com/store/apps/details?id=club.bezzangi.typingx


아이폰 버전 : 

https://itunes.apple.com/us/app/typing-practice/id1330466539?ls=1&mt=8


그림을 보여주고 음성으로 읽어 줌 (TTS)



자마린 테스트 클라우드 사용 방법이라는데...


천천히 따라해봐야 되겠다.



1. homebrew 설치


ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


OSX에서 루비는 기본적으로 설치되어있다.


2. adb 설치

brew cask install android-platform-tools



설치 끝. 참 쉽다.


adb가 설치되고 나면 다음 스크립트를 실행시켜서 USB 연결 없이 무선으로 디버깅 가능하다.




#!/bin/sh

#

# usage : 

#         adb-debug-over-wifi [SERIAL OF THE DEVICE]


device_serial=$1

devices_attached=`adb devices -l | grep -c "device:"`


# check the device 

if [ -z "$device_serial" ]; then

case $devices_attached in 

0 )

echo "No device attached"

exit 1

;;

1 )

echo "No serial given, automatically redirect to the current device"

device_serial_command=""

;;

* )

echo "More than one device attached, please provide a serial"

exit 1

;;

esac

else

device_serial_command="-s $device_serial"

fi


# get the device local ip

device_ip=`adb ${device_serial_command} shell netcfg | grep "wlan0" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"`

echo "Device IP : ${device_ip}"


# restart adb in tcpip mode

adb ${device_serial_command} tcpip 5555


# wait for the user to disconnect the device

read -p "Unplug your device from USB, then press enter to create the wifi connection" w

adb connect ${device_ip}:5555



파이썬으로 만든 구구단 소스


for n1 in range(2,10):
for n2 in range (2,10):
print (n1,"x",n2,"=",n1*n2)


심플하지 않은가

심플하고 아름답다


코드를 뜯어보면...


루프 관련

 - 코드는 2중 루프로 되어있다

 - 루프 몸통은 대괄호 {}로 감싸지 않고 들여쓰기를 이용한다.

    들여쓰기는 공백, 스페이스를 이용해도 되는데 보통 탭문자를 이용한다.

 - 들여쓰기 레벨이 같으면 같은 블럭

 - 하위 블럭은 들여쓰기 한번 더 


range(2,10) : 2에서 9까지, 마지막 숫자 10은 포함되지 않는다. 


해당 소스에서 n1이 2에서 9까지 돌고

그 안에서 n2가 2에서 9까지 돌고

그 안에서 print 문이 실행된다.


파이썬은 2.x와 3.x가 있는데 3.x가 당연히 더 좋다.

레거시(오래된) 소스를 돌릴 필요가 없으면 3.x를 까는게 더 좋다.


파이썬만 따로 까는것 보다 Anaconda를 깔면 유용한 라이브러리를 잔쯕 깔아주니

아나콘다로 까는게 더 좋다.


맥에는 디폴트로 2.x가 깔려있는데 3.x 깔고 환경 살짝 잡으면 3.x를 디폴트로 쓸 수 있다.

설치는 다른 문서 찾아보시고...


 

for n1 in range(2,10):
for n2 in range (2,10):
print (n1,"x",n2,"=",n1*n2)
해당 소스를 실행시키면
2 x 2 = 4
2 x 3 = 6
(중간 생략)
2 x 9 = 18
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
(중간 생략)
9 x 8 = 72
9 x 9 = 81


기교를 살짝 부려보면

for n1 in range(2,10):
print("*** " , n1, " dan", " ***")
for n2 in range (2,10):
print (n1,"x",n2,"=",n1*n2)

결과는 직접 해보자



'IT > 파이썬' 카테고리의 다른 글

python으로 웹에서 주가 데이터 가져오기  (0) 2017.12.20
맥 , 파이썬, 파이참, 한글  (0) 2017.12.19

Android 프로젝트 폴더 -> app -> build -> output -> mapping -> release -> mapping.txt


난독화한 엡에서 크래쉬 발생하는 경우

이걸 구글 스토어에 올려야지 

어느 코드에서 익셉션이 발생했는지 확인 가능


난독화 여부는 app의 build.gradle에서

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


minifyEnabled를 true로 설정해야 함


난독화는 리버스 엔지니어링을 어렵게 하기 위해서 하는데

큰 의미는 없는 듯 하고... 안하는 것 보다 낫겠지.

설정하기 영상

간단하네. 디비서버 따로 안써도 되겠네.

JSON 기반의 nonSQL 공부는 좀 해야할 듯.



자마린으로 만든 고사성어 앱 배포

iOS : https://itunes.apple.com/us/app/apple-store/id1327337148?mt=8

Android : https://play.google.com/store/apps/details?id=club.bezzangi.gosa2


예전에는 안드로이드 앱 만들고, 아이폰 앱 만들고

각각 따로 작업해야 했는데, 세부사항 똑같이 맞추는 것도 일이고 


자마린 한번 작업하면 아이폰, 안드로이드 둘 다 지원 가능

윈도우폰도 지원 하지만... 시장이 없다. 의미 없다.


아이폰, 안드로이드 둘 다 작업할 경우

작업 사이클이 빨라지고, 유지관리가 편하다.


전체적인 작업 방식은 안드로이드와 유사.

XML 작성하여 UI 만들고, C#으로 코드 만들고

C#은 자바보다 쉽고, 편함.


플렛폼 종속적인 부분은 공통 코드에서 interface 만들고

플렛폼 종속 코드에서 interface 상속받아 구현하면 됨


패키지 - 외부 라이브러리 관리가 편하다.


OS 최신 기능을 쓸 수 없지만 큰 단점은 아닌것 같고...

최신 UI 못쓰지만 이것도 큰 단점 아닌듯.


프로젝트 사이즈(디스크 사용량)가 엄청 커짐... 이건 진자 단점.

 




'IT > 모바일' 카테고리의 다른 글

Deobfuscation files 매핑 파일 위치  (0) 2018.01.07
Firebase database  (0) 2018.01.03
미국 시민권 인터뷰 대비  (0) 2017.12.20
고사성어 학습 앱  (0) 2017.12.20
외국인을 위한 한글타자 앱 - 안드로이드  (0) 2017.12.19

아산시에서 뭔가 중2스러운 폰트를 배포했다.

결연한 의지를 표현하는데 적합한 궁서체보다 더 궁서스러운것 같다.

지자체에서 세금으로 폰트 만들어 뿌리는거 이해 안가지만

뭐 쓸만한 무료폰트가 늘어난다는 것은 환영할만하다.

다운로드는 요기



준비


파이썬으로 쉽게 주가 정보를 가지고 올 수 있다.

쉽다. 쫄지 말고... 


python, pandas-datareader가 설치되어있어야 한다.

따로 설치하는것 보다 Anaconda 배포판으로 설치하는 것이 좋다.


다음 주소에서 파이썬 3.x 버전으로 다운로드 받아서 설치한다.

https://www.anaconda.com/download/



파이썬 실행

$ python

Python 3.6.1 |Anaconda 4.4.0 (x86_64)| (default, May 11 2017, 13:04:09)

[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin

Type "help", "copyright", "credits" or "license" for more information.




pandas-datareader

pandas-datareader를 임포트


>>> import pandas_datareader as web


임포트가 안되면 pip 명령으로 pandas-datareader를 설치한다

아나콘다로 설치했으면 자동으로 설치 된다

$ pip install pandas-datareader



다음 명령은 구글에서 코스피 지수를 가지고와서 pandas dataframe으로 저장한다.


>>> df = web.DataReader("KRX:KOSPI", "google")

>>> df


\ Open High Low Close Volume

Date

2010-01-04 1681.71 1696.14 1681.71 1696.14 295646000

2010-01-05 1701.62 1702.39 1686.45 1690.62 407629000

2010-01-06 1697.88 1706.89 1696.10 1705.32 425407000

2010-01-07 1702.92 1707.90 1683.45 1683.45 461562000

2010-01-08 1694.06 1695.26 1668.84 1695.26 379138000

(생략)

2017-08-29 2356.20 2364.74 2332.85 2364.74 223089000

2017-08-30 2368.13 2372.29 2363.43 2372.29 305636000

2017-08-31 2373.96 2377.02 2355.29 2363.19 265050000

2017-09-01 2367.45 2370.25 2351.37 2357.69 280059000

2017-09-04 2316.89 2344.82 2316.89 2329.65 248494000



2010년 1월 4일부터 현재까지 코스피 지수 정보를 가지고 다운받은것을 확인할 수 있다.


주가를 다운 받을때는 KRX:[6자리 종목코드]를 입력한다.

다음 명령으로 삼성전자 주가를 다운 받을 수 있다.


>>> df = web.DataReader("KRX:005930", "google")


알아서 DB에 저장하고 알아서 쓰면 됨.





'IT > 파이썬' 카테고리의 다른 글

[파이썬] 구구단  (0) 2018.01.07
맥 , 파이썬, 파이참, 한글  (0) 2017.12.19

+ Recent posts