티스토리 뷰

왜 우리는 이쁜 폰트를 사용하지 못하였나!


 우리는 폰트와 밀접한 관계를 가지고 있습니다... 지금 이 글도 <고딕> 폰트로 글이 쓰여졌습니다.


 이세상에는 이러한 <고딕> 폰트 처럼 좋은 폰트도 있지만 이러한 <궁서체> 처럼 일반적으로 잘 안쓰는 폰트들도 많이 있습니다.(그렇다고 저 폰트가 못났다!! 는 아닙니다.)


 그래서 말하고자 하는게 무엇이냐?! 바로 개발하고있는 앱에 이쁜 폰트를 집어 넣고 싶다 입니다. 여러 무료 폰트들이 있지만 가장 널리사용되고 있는것은 상업적으로도 무료로 사용가능한 네이버에서 만든 <나눔 글꼴> 이다라고 생각합니다. 실제로 많은 앱에서도 적용이 되고 있습니다. <나눔 글꼴>은 다음의 주소에서 다양한 형태의 글꼴 다운이 가능합니다.


나눔 글꼴 링크


 천천히 링크를 살펴본 다음 다운을 받아줍니다.(저는 일반적으로 otf파일을 받습니다.) 설치파일이 다운이 된다면 설치를 해줍니다. 그리고 다음의 경로에 들어가서 다운받은 폰트 파일을 찾아줍니다. 윈도우에 설치된 폰트가 저장되는 곳은 다음과 같습니다.


C:\Windows\Fonts


 들어가셔서 많은 폰트들 가운데서 찾기 힘드니 폴더 창의 검색기능을 이용해 <나눔>을 검색하여 쉽게 폰트를 찾은뒤 그 파일을 복사하여 다른곳에 붙여넣기하면 otf파일을 얻을 수 있습니다. 이제 이 폰트를 TypeKit을 사용하여 앱에 적용해 보겠습니다.


 TypeKit은 정말 간단하게 앱에 폰트를 적용시켜주는 라이브러리입니다. 아참! 그전에 우선 위에서 받은 폰트 파일을 'assets' 폴더에 저장해줍니다.(폴더가 없을경우 만들어주시면 됩니다)



 그후 gradle로 이동하여 Typekit을 컴파일 해줍니다. TypeKit의 최신 버전은 다음의 링크에서 확인 하실 수 있습니다.


https://github.com/tsengvn/typekit


등록후 Sync를 하여주면 이제 사용준비는 다 끝났습니다. 


1. Application에 폰트 등록


우선 Application을 상속받는 Class를 하나 만들어줍니다. 그리고 onCreat를 재정의하여 다음과 같이 폰트를 설정해줍니다.


1
2
3
4
5
6
7
8
public class BaseApplication extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        Typekit.getInstance().addNormal(Typekit.createFromAsset(this,"NanumSquareRoundOTFR.otf"))
                            .addBold(Typekit.createFromAsset(this,"NanumSquareRoundOTFB.otf"));
    }
}
cs


 이제 앱에서 폰트를 사용할 준비는 끝났습니다!!! 사용하고자 하는 Activity에서 로딩을 해주면됩니다.


2. Activity에 폰트 로딩


1
2
3
4
5
6
7
public class BaseActivity extends AppCompatActivity{
    @Override
    protected void attachBaseContext(Context newBase) {
        // 커스텀 폰트 로드
        super.attachBaseContext(TypekitContextWrapper.wrap(newBase));
    }
}
cs


 일반적으로 가장 쉽게 모든 Activity에 적용하는 방법은 BaseActivity를 하나만들어 여기서 attachBaseContext에 추가를 해주고 다른 Activity는 이 BaseActivity를 상속받는 방법이 될 것 같습니다.


 이제 사용자들이 핸드폰에서 어떠한 폰트를 사용하던 해당 앱을 실행시키면 개발자가 설정해 놓은 폰트가 적용이 될 것입니다. 물론 이러한 획일적인 폰트를 싫어하는 사용자들도 있습니다. 따라서 사용자에게 의사를 물어 그 내용에따라 미리 정해놓은 폰트를 씌우는것도 방법이지만 간단한 앱이라면 개발자가 원하는 폰트를 기본 폰트로 정해놓는것도 나쁘진 않다고 생각이 듭니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday