라벨이 안드로이드인 게시물 표시

아이폰 그리고 안드로이드 화면 동일성 추구 개발에 관하여...

이미지
 아이폰과 안드로이드를 각각 네이티브로 개발을 해온지 세월이 꽤나 흘렀다. 항상 화면의 동일성을 추구하였다. 이왕이면 같은 화면을 보여줘야 사용자가 편할꺼란 생각이었다. 그러다 보니 몇가지 원칙이 생겼다. 일단 화면을 보자. 안드로이드 화면이다. 아이폰 화면이다. 각 화면의 가운데에 뷰를 만들고 거기에 제목 문자열 그리고 그 밑에 프로그레스바를 추가하였다. 안드로이드의 액티비티는 엑스코드의 뷰컨트롤러가 된다. 안드로이드의 프레임레이아웃은 엑스코드의 뷰가 된다. 기본으로 이런 구조를 맞추고 나머지 세세한 부분을 맞추면 된다. 엑스코드에서 크기는 뷰는 전체 뷰와 크기를 동일하도록 컨스트럭트를 추가한 후 거기 비율을 조정한다. 안드로에드에서 크기는 프레임 레이아웃의 크기를 0dp 로 설정한 다음 웨이트를 주어서 조정하면 둘의 크기는 같아진다. 안드로이드에서 리니어와 프레임만 사용해서 구현하면 엑스코드의 뷰를 사용한 것과 동일한 화면을 맞출 수 있다. 각 특성별로만 있는 객체는 가급적 사용하지 않는것이 좋다. 대부분의 화면은 라벨, 버튼, 프로그레스, 이미지 등이면 충분하다. 사실 사용자는 이게 아이폰인지 안드로이드인지 상관하지 않는다. 기능에 충실한 앱을 만드는 것이 기술자이지 않을까 싶다.

안드로이드 앱 오프닝 광고 추가하는 방법

이미지
안드로이드 앱 오프닝 광고를 추가하는 방법이다. 1. 오프닝 광고 아이디를 애드몹에서 추가해야 한다. 2. 이제 안드로이드 스튜디오에서 build.gradle 모듈을 연다. 3. 구글 광고 서비스를 추가한다. 4. 오프닝 관련 모듈을 추가한다. 5. MyApplication 클래스를 추가한다. 6. 메니페스토를 수정하기 위해 연다. 7. 이름을 추가한다. MyApplication 코드  public class MyApplication extends Application implements Application . ActivityLifecycleCallbacks , LifecycleObserver { private AppOpenAdManager appOpenAdManager ; private Activity currentActivity ; @Override public void onCreate () { super . onCreate (); this . registerActivityLifecycleCallbacks ( this ); MobileAds . initialize ( this , new OnInitializationCompleteListener () { @Override public void onInitializationComplete ( @NonNull InitializationStatus initializationStatus ) {} }); ProcessLifecycleOwner . get (). getLifecycle (). addObserver ( this ); appOpenAdManager = new AppOpenAdManager (); } @OnLifecycleEvent

Android java 에서 YouTube Player 구동할 때 youtube 플레이어를 초기화하는 중에 오류가 발생했습니다 오류 나올 때

안드로이드 스튜디오에서 자바로 개발할 때이다. 유튜브 플레이어를 붙이는데 많이 번거롭다. 아이폰 보다 더 번거롭다. 일단 jar 파일을 수동으로 인포트 하고 구동하는데 오류가 난다. 오류내용 : youtube 플레이어를 초기화하는 중에 오류가 발생했습니다 수정 방법은 다음과 같다. AndroidManifest.xml 파일에 다음을 추가하면 된다. <queries> <intent> <action android :name ="com.google.android.youtube.api.service.START" /> </intent> </queries> <application  위에 넣으니까 잘된다.

앱 출시 과정에 대한 넋두리

 아이폰 앱을 먼저 만들고 안드로이드 앱을 만들었습니다. web server는 node express, database는 mongodb, server는 네이버클라우드 1년 무료를 신청하여 마이크로 서버에 위의 환경을 구축하였습니다. 도메인은 가비아에 신청하여 1년 결제를 하였고 SSL 은 letsencrypt 에 연동하여 매월 갱신되도록 설정하였습니다. haproxy 를 설치하여 서버에 접근하는 트래픽을 분산하도록 설정하였습니다. 가령 예를 들어 topScore api 를 호출하는 건수가 많아지면 하나의 node express 로 처리하는게 버거울꺼 같아서 같은 서비스를 포트별로 분기하는 방식으로 설정하였어요. 그 트래픽 분기는 haproxy 가 하는 것이고요. 이게 서버 성능을 100%까지 끌어올리는데 꽤 역할을 합니다. 일단 서버측 모듈은 이런식으로 대충 구성이 되어 클라이언트인 앱 개발을 시작하였습니다. 아이폰 앱을 스위프트로 스토리보드를 사용하여 만들었습니다. 화면 구성을 하고 기능들을 입혀 가면서 서버 모듈과 테스트도 하여 완성시켜 나갔습니다. 아이폰 앱을 심사를 올리고 안드로이드 개발에 나섰습니다. 아이폰의 ViewController 를 안드로이드의 Activity 로 변환하는 느낌으로 개발을 하였습니다. 안드로이드는 자바로 구성하였는데 저 같은 경우는 아이폰에서 안드로이드를 더하는 느낌으로 개발하므로 코틀린은 자료가 없어서 힘들었고 자바는 자료가 많아 개발하기가 너 나은 느낌이었습니다. 둘 다 앱이 심사에 통과되어 스토어에 올라 갔는데 다운로드 수가 늘지 않습니다. 디자인이 문제 인거 같아 아는 디자이너를 수배하여 디자인 시안을 받아서 적용하였습니다. 이 작업이 만만치가 않더군요. 나중에 금전적인 여유가 있으면 개발 전에 디자인을 받아서 작업하는 좋겠다는 생각이 들더군요. 디자인을 적용하니 이제야 어구를 갖춘 어선이 되었구나 하는 느낌이었습니다. 만선을 기대하여 출항하는 배처럼...., 다운로드 수가 많아지길 바라며 스토어에 올렸는데.......