어떤 시나리오에선 Activity에서 다른 Activity로 value를 전달해야하는 경우가 있다.
예를 들면 MainActivity와 별도로 AlarmActivity를 만들고 알람 발생 시 AlarmActivity가 활성화되며 화면 클릭 시 MainActivity를 실행하는 시나리오를 생각해보자.
이때 AlarmActivity에서 특정값을 MainActivity로 넘겨주어야 한다면?
아래와같이 put.Extra()를 이용하여 전달한다.
보다 디테일하게는 실행할 Activity를 이용하여 Intent를 생성하고 Intent에 extraData를 set 한 뒤 StartActivity()를 이용해 Intent를 실행한다.
Intent MyActivityIntent = new Intent(this, typeof(MyActivity));
MyActivityIntent.putExtra("ExtraData", item);
this.StartActivity(MyActivityIntent);
이부분에서 생각해볼 만한 것은 Activity, Intent와 같은 개념이다.
안드로이드 개발자들에게 위 개념들은 아주 기본적인 개념이다. 수명주기를 포함, 안드로이드 운영체제의 기본이 되는 이러한 개념들이 자마린폼즈와 같은 크로스 플랫폼으로 모바일 개발을 시작한 개발자들에게는 생소할 수 있다.
그렇다면 위와같은 개념을 모르면 자마린폼즈로 안드로이드 앱 개발을 할 수 없는가?
아니다 분명 몰라도 할수있다.
하지만 위와같이 안드로이드(혹은 iOS) 디펜던시가 있는 개념들을 필요로 하는 작업이 있는 것도 사실이다.
한 가지 확실한 것은 크로스 플랫폼 개발을 하다 보면 위와 같이 네이티브 관련된 개념들을 어디까지 알아야 하는지에 대한 고민을 계속할 수밖에 없는 것 같다.
물론 다 알고 개발하면 좋지만 현업에서는 상황이 천천히 다 공부하도록 기다려주지만은 않을뿐더러
안드로이드, iOS를 깊게파고 Native쪽에 코드를 작성하다보면 크로스 플랫폼에서 개발하는 것에 회의감이 들기도 한다.
정해진 것은 없지만 생각해볼 필요가 있는 것 같다. 어디까지 알 것인가?