티스토리 뷰

안녕하세요! 오늘은 안드로이드 프로그래밍 초보자도 쉽게 따라할 수 있는 앱과 앱 간 딥링크의 개념과 구현 방법을 안내 드리겠습니다.

 

딥링크란 무엇인가?

딥링크는 특정 페이지나 콘텐츠에 직접 연결되는 링크를 의미합니다.

예를 들어, 친구가 여러분에게 전송한 링크를 클릭하면 특정 앱의 특정 화면으로 바로 이동할 수 있습니다.

이는 웹 페이지에 대한 링크가 똑같은 방식으로 작동합니다.

딥링크를 사용하면 사용자의 경험을 한층 개선할 수 있으며, 다양한 앱과 연동하여 사용자에게 더 많은 이점을 제공할 수 있습니다.

 

딥링크를 활용한 애플리케이션 예제

지금부터는 간단한 두 개의 안드로이드 앱을 제작하여 딥링크를 구현해보겠습니다.

이 예제에서는 두 앱을 만들 것입니다. 하나는 링크를 보내는 앱, 다른 하나는 해당 링크를 통해 콘텐츠를 수신하는 앱 입니다.

 

1. 앱 A (딥링크 전송)

앱 A에서는 사용자가 버튼을 클릭하여 특정 링크를 다른 앱으로 전송하는 방식으로 구성됩니다.

아래와 같이 저희의 MainActivity에서 버튼을 눌렀을 때 딥링크를 생성하고 이를 이메일이나 메시지로 전달하는 코드를 작성하겠습니다.


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button sendLinkButton = findViewById(R.id.send_link_button);
        
        sendLinkButton.setOnClickListener(v -> {
            Uri deepLinkUri = Uri.parse("myapp://details/12345"); // 딥링크 URI
            Intent sendLinkIntent = new Intent(Intent.ACTION_SEND);
            sendLinkIntent.setType("text/plain");
            sendLinkIntent.putExtra(Intent.EXTRA_TEXT, deepLinkUri.toString());
            startActivity(Intent.createChooser(sendLinkIntent, "Share link"));
        });
    }
}

 

2. 앱 B (딥링크 수신)

앱 B에서는 수신된 딥링크를 처리하여 사용자가 요청한 콘텐츠를 보여주는 기능을 구현합니다.

아래와 같이 앱의 매니페스트 파일에 딥링크 필터를 추가하고, 관련된 정보를 수신하여 처리하는 코드를 작성하겠습니다.

 

<activity android:name=".DetailActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="myapp" android:host="details"/>
    </intent-filter>
</activity>

 

이제 DetailActivity에서 딥링크를 받은 후, 정보를 표시하는 방법은 다음과 같습니다:


public class DetailActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        
        Uri data = getIntent().getData();
        // URI가 null이 아닐 경우 적절한 Content를 표시
        if (data != null) {
            String itemId = data.getLastPathSegment(); // "12345"를 가져옴
            // 여기에 itemId에 대한 정보를 사용자에게 보여주는 로직 추가
        }
    }
}

 

결론

이번 포스팅에서는 안드로이드에서 앱 간 딥링크를 구현하는 방법에 대해 알아보았습니다.

두 개의 소켓 앱을 통해 간단한 구조와 코드를 제공하였는데요, 이는 여러분이 딥링크의 기본 개념을 이해하고 실제로 적용할 수 있는 좋은 기본이 될 것입니다.

앞으로 더 많은 앱을 만들어 보시길 바랍니다!

 

감사합니다!

 

반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함