옴로하!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

오늘은 '흥미로운 사실 - 동물 편' 개발일지의 첫 시간으로

타이틀 페이지 구현에 대해 포스팅해볼까 한다.

 

준비물은 유니티로 생성한 새로운 프로젝트!

우리는 안드로이드 어플을 목표하고 있으므로 

 

먼저 File > Building Settings... 로 들어가 플랫폼 아래 안드로이드를 클릭해주고

Switch Platform 버튼을 눌러 설정을 저장해 주자.

처음 새로운 프로젝트를 생성하면 PC 플랫폼이 디폴트로 설정되어있다.

나중에 변경하게 될 경우 만들어놓은 화면 비율이나 이미지 위치가 엉망이 되는 관계로

항상 프로젝트 생성 후 바로 플랫폼을 변경하는 것을 습관화하도록하자.

 

 

 

 

다음으로 필요한 것은 가장 중요한 이미지 파일!

만들어놓은 이미지를 프로젝트 콘솔에 드래그엔드랍으로 끌어와주자.

해당 어플의 경우 타이틀 페이지에 필요한 이미지는

배경, 타이틀 이미지 (동물 로고), 타이틀 텍스트, 메인 메뉴 버튼, 개인정보 보호정책 버튼이다.

 

 

배경 이미지를 제외한 나머지는 한 장에 여러 개의 스프라이트가 함께 있는 게 보인다.

이럴 경우엔 해당 이미지 클릭 > Inspector > Sprite Mode > Multiple > Sprite Editor > Apply

를 통해 한 이미지에 스프라이트 개수가 여러 개라는 걸 알려주고

스프라이트 에디터로 가서 이미지를 개별로 잘라주고 어플라이를 눌러주면 된다.

 

스프라이트 준비가 완료되었다면 본격적으로 UI 디자인을 적용할 시간!

먼저 Hierarchy 탭에서 우클릭 > UI > Image를 눌러 빈 이미지를 생성해준다.

 

이때 Hierarchy에 캔버스가 없었다면 자동으로 새로운 캔버스가 형성되는 것을 볼 수 있는데,

여기서 아주 중요한 건 캔버스 안에서 작업을 시작하기 전

해상도 최적화 작업을 해줘야 한다는 것이다.

 

 

캔버스를 클릭하여 Inspector > Canvas Scaler > UI Scale Mode를

Scale With Screen Size로 변경해준 뒤 Reference Resolution을

현재 작업하는 모바일 뷰 크기로 맞춰주도록 하자.

 

이 작업을 완료했다면 본격적으로 이미지를 캔버스에 배치할 차례이다.

 

 

 

아까 생성했던 빈 이미지를 클릭한뒤 Inspector > Source Image에

배경이 될 이미지를 드래그 앤 드롭으로 끌어다 놓자.

그런 다음 Preserve Aspect를 눌러주면 원본 이미지의 비율을 깨뜨리지 않고

그대로 가져올 수 있게 된다.

 

이미지를 적용했다면 Scene 뷰에서 알맞은 사이즈를 맞추고

이미지 배치도 적절하게 해 주도록 하자.

 

그다음 위와 동일한 방법으로 캔버스에 빈 이미지를 생성해서

타이틀 이미지와 타이틀 텍스트도 적용, 배치해준다.

 

여기까지 끝나면

 

 

이렇게 이미지 3개로 타일 이미지 배치는 끝이 났다.

이번엔 타이틀 텍스트 하단에 메인 메뉴와 개인정보보호정책 버튼을 넣어줄 차례!

 

이번엔 Hierarchy 창에서 우클릭 > UI > Button을 눌러 버튼을 생성해준다.

 

필자가 준비한 버튼 이미지의 경우 이미 버튼 안에 용도별 텍스트가 들어가 있기 때문에

버튼 아래에 있는 Text는 지워준다.

하지만 보통 버튼 백그라운드 UI 이미지만 입혀서 텍스트만 바꿔 사용하기도 한다.

이건 개인 취향을 적용해 적절히 사용하면 된다.

 

그다음 똑같이 생성된 Button을 클릭한뒤 Inspector > Source Image에

원하는 버튼 이미지를 끌어다 놓은 뒤 Preserve Aspect로 원본 이미지 비율을 고정해주고

Scene 뷰에서 크기 조절과 버튼 배치를 해준다.

같은 방법으로 개인정보 보호정책 버튼도 만들어주도록 하자.

 

 

완성된 타이틀 페이지 UI !!!!!!!!!!!!!!!!!!!!!

너무 귀엽다.

 

여기서 잠깐! UI 배치에 중요한 포인트.

휴대폰은 기종에 따라 스크린 해상도 / 화면 비율이 제각각이기 때문에

해상도에 변화가 있을 경우 배치해놓은 이미지들이 중구난방으로 난리가 나게 된다.

이를 방지하기 위해서 anchor라는 것을 사용해야 되는데,

여기서 anchor는 바다 위에서 배를 고정하는 데에 쓰이는 닻을 의미한다.

말 그대로 닻을 내려 물체를 고정시킬 수 있는 기능이다.

 

이 anchor의 사용방법은 다음과 같다.

일단 고정하고 싶은 방향에 따라 오브젝트를 한데 모아줘야 한다.

이를 위해 Hierarchy에서 Canvas > 우클릭 > Create Empty를 눌러 빈 오브젝트를 만들고

그 속에 함께 움직여야 할 물체들을 싸그리 넣어준다.

(이때는 꼭 Canvas에 우클릭 후 빈 오브젝트를 생성해주어야 anchor사용이 가능해진다)

 

 

필자의 경우 모든 이미지를 화면 중앙에 고정시키기 위해

빈 게임 오브젝트를 하나만 생성하여 타이틀 이미지, 타이틀 텍스트,

메인 메뉴 버튼, 개인정보보호정책 버튼을 모두 넣어주었다.

 

 

이렇게 고정할 물체들을 빈 오브젝트에 넣고 난 뒤,

오브젝트를 클릭 > Inspector > Rect Transform 좌측 상단 이미지를 눌러

Anchor Presets 설정을 열어준다.

이때 경우에 따라 화면 상단 중앙을 고정 기준점으로 잡고 싶다면

가운데 9개의 옵션 중 상단 센터 옵션을,

하단으로 잡고 싶다면 하단 센터 옵션을 선택해주면 된다.

 

anchor 설정이 완료되었다면 Game 뷰에서 화면 비율을 변경해가면서

모든 화면 크기에서 이미지가 잘리는 일 없이 제대로 보이는지 확인해주자.

 

이렇게 하면 타이틀 화면 UI 완성!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

짝짝짝짝짝

 

이어지는 포스팅에서는 버튼 기능 구현을 다룰 예정!

메인 메뉴 버튼의 경우 클릭하면 메인 메뉴로 넘어가는 기능을 만들고,

개인정보 보호정책 버튼의 경우 클릭 시 정책 웹페이지를 여는 기능을 구현한다.

이를 위해서는 Scene 생성과 웹페이지를 열어주는 코드가 필요하다.

다음 시간에 자세히 알아보도록 하자!

 

 

그럼 다음 포스팅까지!!!!!!!!!!!!!!!!!!!!!!!!!

 

피쓰-!

 

 

옴로하!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

오늘은 정말 오랜만에 돌아온 어플 출시 포스팅!!!!!!!!

 

엄밀히 말하면 일곱 번째 어플이 되겠지만

구글 개인정보보호정책 업데이트 이후 주기적으로 계속해서

변경사항을 어플에 적용하라는 이메일을 받으면서도

'연습용 어플이라 상관없다'를 시전 하면서 버티다가

(스토어 키코드도 잃어버려, 프로젝트 파일도 잃어버려, 키코드 찾아도 비밀번호도 까먹음)

대부분의 어플이 강제로 끌어내려져 현재 생존 어플은 딱하나.

 

그렇게 뭘 또 만들까 고민 고민하다가 몇 개의 프로젝트를 시작하고

중도 포기하고, 다시 다른 걸 시작하고 또 뒤집어엎기를 반복하다가

결국 다시 또 단기 제작 가능한 어플을 만들기로 결심했다.

 

이건 탄생한 어플의 아이콘!!!!!!!

아직도 배우는 단계인 관계로 아직도 쉬운 어플 (먼산)

그렇게 떠오른 건 역시나 콘텐츠 기반의 간단한 버튼 몇 개가 끝인 자료 어플이었고

눈누난나 콘텐츠를 찾다가 '흥미로운 사실 - 동물 편'을 만들게 되었다!

 

  • 악어는 뒤로 가지 못한다.
  • 호랑이는 털뿐만이 아니라 털 속 피부에도 줄무늬 모양이 있다.
  • 금붕어의 이름으로 가장 많이 사용되는 것은 '죠스'이다.

위와 같이 자잘 자잘한 동물 관련 팩트들을 담았다.

하지만 이번엔 미국을 타깃 했으므로 영어 온리. 읽을 수 있다면 읽어 보시지! (도발)

반응을 보고 한글 업데이트도 할 의향이 있다. (그러니까 받아줘요 굽신)

 

가장 중요한 건 본격적으로 자잘한 어플들을 열심히 개발하기 위해

그래픽 사이트 유료결제를 질러버렸고

이제 한층 이쁜 어플을 만들 수 있게 되었다!

 

그러므로 어플 디자인은 사이트에서 원하는 그래픽을 다운로드하여 일러스트레이터를 통해

레이아웃을 만들고 그래픽에서 원치 않는 부분이나 수정해야 할 부분을 직접 손봐가며 만든다.

(200개가 넘는 콘텐츠에 적합한 동물 그래픽을 일일이 하나하나 손수 찾은 건 안 비밀)

 

(개시된 어플 페이지와 완성된 그래픽)

그렇게 이번 어플을 만드는데 소요된 시간은 총 3일로

그래픽과 자료 정리, 스토어 등록, 그리고 여러 가지 컴파일 에러 (발암)로

개발 대부분의 시간을 잡아먹었고

정작 프로그래밍은 하루정도 걸린 듯하다.

 

오랜만에 개발을 해보니 역시가 역시 별의별 에러가 여기저기서 난무하였다.

구글이 다시 타깃 api 레벨을 올리면서 유니티 버전에도 문제가 있어

버전 변경도 했어야 했고 SDK 다운도 새로 했어야 했다.

 

여기서 제일 발암이었던 건 다 만들고 보니 사용된 유니티 버전이 몇 년 전 꺼라

api레벨이 사용불가였고, 구글 정책을 맞추려면 유니티 새 버전으로 프로젝트를 옮겨야 했다.

'버전이 다릅니다. 옮기시겠습니까?'와 비슷한 메시지가 뜨길래

Yes를 눌렀더니 안드로이드 디펜던시 어쩌고 가 에러가 씨게 나면서 프로젝트가 다 망가졌고

결국 새 버전으로 새 프로젝트를 만들어서 손수 다 옮겨오는 방법으로 수정을 진행했다

분명 더 나은 방법이 있었겠지만... (컴퓨터치의 설움)

 

 

어쨌든 여차저차 인고의 시간을 넘어 드디어 스토어에 개시 성공!!!!!!!

스토어 어플 검토시간은 대략 하루 정도가 걸린 것 같다.

등록해놓고 자고 일어나니 오후쯔음 개시 완료 노티를 받았고,

개시 후에도 알고리즘이 어플 노출을 잡을 때까지 또 하루 내지 이틀 정도가 소요되었던 것 같다.

 

개시 첫날엔 어플 이름 그대로 검색을 해봐도 어디에도 나오지 않아서 살짝 쫄았었는데

오늘 확인을 해보니 나름 한 30번째 정도(...)는 뜨는 것 같다.

보이는 게 어디인가 안도는 하는 중.

 

어플 개발 초짜로서 개발을 할 때 항상 이전에 사용하지 않았던 기능을 하나씩 구현해보려고 하는 편인데,

이번엔 새 기능 연습 겸 보상형 광고를 넣었다!!!!!!!!!!

일전에 배너광고와 전면광고는 사용경험이 있었는데 보상형 광고는 처음이었다.

 

보상형 광고는 더 많은 콘텐츠를 잠금 해제하는 용도로 사용했다.

메인 메뉴에 보이는 카드 당 20개의 콘텐츠가 있고, 처음엔 2개의 카드를 오픈해놓았다.

3번째 카드부터는 광고를 한번 시청하면 카드가 열리는 방식이다.

이렇게 총 10개의 카드로 200개의 콘텐츠가 있다.

 

 이렇게 어플 출시를 마쳤으니 어플 개발 다음은 해당 어플 개발과정을 포스팅해볼까 한다.

마지막으로 혹시 어플이 궁금하다면

 

play.google.com/store/apps/details?id=com.TheOm.AnimalFunFacts&hl=en_US

 

Animal Fun Facts - Did You Know? - Apps on Google Play

How much do you know about animals? Check out these amazing facts about various animals! Share these cool facts with your friends and family! Did you know that: ※ Sharks are immune to cancer! ※ Even a small amount of alcohol placed on a scorpion will m

play.google.com

(별점 5점 주시면 사........ 사랑합니다)

 

그럼 다음 포스팅까지 아디오스!!!!!!

 

 

 

 

옴로하!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

오늘은 대망의 중간정산 수익 공개 포스팅을 가져왔다.

그동안 어플 개발을 미루고 미루고 귀차니즘 게으름병에 걸려 버려 놓았었는데

그래도 찔끔찔끔 꾸준히 수익이 들어온 기는 했었다.

참 매력 있는 어플 개발 앉아서 돈 벌기!

수익 공개에 여태까지 등록한 어플의 개수는 총 6개이고,

그중 살아있는, 스토어에 업로드되어있는 어플은 딱 하나이다.

 

두둥.

이유는 역시 귀차니즘.

6개의 어플이 대부분 연습용 어플이기도 했고,

딱히 그 어플들로 수익창출을 할 생각은 없었는데,

마침 (이라고 쓰고 하필이면 이라고 읽는다) 구글에서 정책 업데이트를 진행하면서

개인정보정책 개제가 필수 조건이 되었다.

어플 내에 개인정보정책 섹션을 만들어야 하는데

귀차니즘 만렙인 본인은 어플 업데이트를 하지 않았고

구글에서 자동으로 업데이트 정책이 반영되지 않은 어플들을 끌어내려주었다.

 

하.지.만.

하나의 어플에서는 꾸준한 수익이 발생하고 있었기 때문에

api keystore를 잃어버렸음에도 불구하고

개고생을 하며 겨우겨우 업데이트를 했다.

(api keystore 비밀번호를 잃어버리면 어플의 생명은 끝이라고 보면 된다.

brute force를 이용해 비밀번호를 변경할 수 있다고는 하는데 할 줄 모른다 하하)

 

 

수익이 잘 나오는 날에는 하루에 $3 (한화 3천 원) 정도의 수익이 발생했고,

그렇지 않은 날에는 대부분 $1 미만이거나 $1 언저리의 수익이 나왔다.

수익을 결정하는 중요한 요소 중 하나인

eCPM ( effective cost per thousand impressions)가

운 좋게 신기하리만큼 높게 잡힌 날에는

아쉽게도 트래픽이 보통날에 비해 떨어졌다.

그렇게 지금까지 이 하나의 어플로 벌어들인 수익은

 

총 $529.47 (한화 53만 원)이다.

 

애드센스는 잔고가 $100 이상이 넘어야 정산을 받을 수 있기 때문에

아직 잔고에 남아있는 $84.67 (한화 8만 5천 원)은 포함되지 않았다.

다행히 이번 달은 현재까지 총 $32 (한화 3만 2천 원) 정도의 수익이 발생했고,

드디어 또 한 번 정산을 받을 수 있게 되었다.

그렇게 수익이 크지 않기 때문에 현재는 보통 ~3달에 한 번꼴로 10만 원 남짓이 들어오고 있다.

구글 애드센스의 정산 날짜는 매월 말 27일경이기 때문에

다음 달 1일이 지난다고 해도 거진 한 달을 기다려야 정산을 받을 수 있다.

최근 한 번 더 콘텐츠 업데이트를 진행했고, 

이전보다 광고 노출수와 클릭률이 향상됐지만

코로나의 여파로 광고주들의 수요가 낮아지면서 오히려 단가는 떨어지는 추세.

(애드몹 웹미나 오피셜)

 

현재는 또 다른 어플을 구상 중에 있다.

예전에 만든 게임 어플로 쓴 맛을 본 이후 게임보다는

유틸리티나 정보성 어플에 더 관심 이 가지만

구상 중인 간단한 게임 어플 (하지만 만드는 건 간단할 리가 없는)도 있다.

어플 개발에 손 놓은 후로 구글 정책에 뭐가 많이 추가됐다는 걸 들었다.

api 미니멈 레벨도 올라갔고 기타 등등 변경사항들을 들여다볼 생각에 머리는 아프지만

다음 어플까지

 

파이팅!

+ Recent posts