본문 바로가기

Mobile

(10)
[Android] Android 통신 방법 앱에서 가장 많이 수행하는 처리 중 하나는 서버에 데이터를 요청하고 받아온 데이터를 클라이언트의 화면에 표시하는 것이다. 이때 클라이언트와 서버가 통신하는 방식은 크게 소켓통신과 HTTP통신 두 가지로 나눌 수 있다. 1. 소켓통신소켓 : 네트워크 상의 두 프로그램 사이에서 일어나는 양방향 통신 중 한쪽의 엔드 포인트(ip+port)를 의미: 소켓 통신에서는 클라이언트와 서버가 특정 포트를 통해 연결을 계속 유지하고 있기 때문에 실시간으로 양방향 통신이 가능하다. : 동영상 스트리밍, 온라인 게임등에서 사용되는 연결방식 2. HTTP 통신HTTP : 80번 포트를 사용해 웹 상에서 정보를 주고받을 수 있는 프로토콜: 클라이언트가 서버에 헤더와 바디로 이루어진 메시지를 요청하면 서버는 이 요청을 처리하고 ..
[Kotlin] Kotlin 기본 문법 1. 변수 1-1. var : var 선언 시에는 값 변경이 가능하다. : 변수 선언 시 자료형 선언 가능하지만 별도 선언하지 않아도 자동으로 지정된다. : Kotlin의 자료형은 Int, Float, Double 등 대문자로 시작한다. fun main(){ var x: Int = 10 // int형 변수 x = 20 //변수는 값 변경 가능 var str = "Hello" //타입 지정하지 않아도 자동 지정됨 } 1-2. val : val은 상수로 선언되므로(java의 final) 초기화 이후 값을 변경할 수 없는 변수이다. fun main(){ val b = 10 //b = 20으로 값 변경 불가 (상수이기 때문) } 2. 메서드 2-1. 기본형 메서드 : 메서드의 기본 구조는 아래와 같다. : 함수..
[React-Native] 리액트 네이티브란? React Native : Facebook에서 만든 오픈소스 프로젝트 : 2015년 3월 공개 : 기존 하이브리드에서 있던 성능문제없이 자바스크립트를 이용해 iOS, Android 개발 가능 : 페이스북, 인스타그램, 디스코드, 스카이프등에서 react native를 사용 1. 장점 - 쉬운 접근성 : 새로운 언어의 배움 없이 JavaScript를 이용해 개발할 수 있다. - 비용 절감 : iOS, Android를 한번에 개발 가능하다. - Fast Refresh : 코드 수정에 따른 결과를 바로 확인할 수 있다. 2. 단점 - 네이티브앱과의 성능 차이 : 기존 하이브리드 앱보다는 성능이 좋지만 네이티브만큼 좋지 못하다 : 네이티브에 나온 신규 기능을 지원하지 않으면 사용하기 어렵다. - 디버깅의 어려움..
[Mobile] 딥링크의 방식 URI Scheme, App Link, Deferred DeepLink 웹페이지에서는 http, https로 시작하는 인터넷 주소를 통해 특정 웹페이지로 이동한다. 모바일 앱에서도 이와 같이 사용자가 웹 페이지 또는 다른 앱에서 URL을 클릭하면 앱을 실행하고 특정 페이지를 열게 해주는 기술이 있는데 그것이 딥링크(Deeplink)이다. 딥링크는 특정 주소, 값을 입력하여 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행하며 3가지 방식으로 구분된다. URI 스킴 방식 : 앱에 URI 스킴값을 등록해 딥링크 사용 앱링크(App Link) : Android에서 제공하는 것으로 도메인 주소를 이용해 딥링크 사용 유니버셜 링크(Universal Link) : iOS에서 제공하는 것으로 도메인 주소를 이용해 딥링크 사용 1. URI 스킴 : URI 스킴은 가장 일반적으로..
[Android] WebView 세팅 Android에서 웹뷰를 구현하기 위해서는 WebView 객체를 사용한다. 하지만 WebView 객체만으로는 화면을 보여줄 수 있을 뿐이며 웹뷰 안에서의 다른 기능(ex. 버튼) 들은 동작할 수 없다. 이러한 것들을 제어하기 위해 여러 설정들을 통해 웹뷰를 세팅할 수 있는데 그 방법에는 크게 3가지가 있다. 1. WebView Settings : 웹뷰의 가장 큰 범주에서 웹뷰를 세팅한다. private WebSettings webSettings; @Override protected void onCreate(Bundle savedInstanceState) { ... webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); //..
[Android] 웹뷰(WebView)에서 window.open 처리 안드로이드 웹뷰에서 새 창을 열기 위해 사용되는 window.open을 처리하기 위해서는 이와 관련된 새로운 웹뷰를 생성하여 추가 구현이 필요하다. 1. window.open 사용하여 팝업 여는 html 파일 생성 웹뷰에서 새 창 띄우기 주소록 팝업 열기 2. 웹뷰 세팅 public class MainActivity extends AppCompatActivity { private WebView webView; //웹뷰 선언 private WebSettings webSettings; //웹뷰 세팅 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la..
[Android] WebView Bridge 구현 브릿지(Bridge) [1] - 안드로이드와 웹뷰의 통신을 위해 만들어진 Javascript용 인터페이스 - 웹뷰에서는 안드로이드의 메서드를 직접 호출하는 것이 불가하므로 웹뷰에서 안드로이드의 기능을 사용하고 싶을 경우 등에 브릿지(Bridge)를 통해 호출해야 한다. 브릿지(Bridge) 구현 [2] : webview 환경에서 web과 native 간의 데이터를 주고받기 위한 bridge(@javascriptinterface)를 구현한다. : Web -> Android, Android -> Web으로의 데이터를 전달하는 방법을 동시에 구현한다. 1. Bridge 생성 - Bridge를 생성하여 WebView에서 showToast함수를 통해 Toast 메시지를 만들 수 있도록 구현해 본다. //Andro..
[Android] 웹뷰(WebView) 화면 로딩 오류 이전 포스팅에서 구현해본 WebView 실습에서 코드 구동 시 흰 화면이 나오며 로딩이 되지 않는 오류가 발생한 경험이 있다. [Android] 웹뷰(WebView) 구현 및 디버깅 웹뷰(WebView) [1] - Android 앱 내에서 웹 애플리케이션 또는 웹페이지를 제공해주는 프레임 앱에 웹뷰(WebView ) 구현하기 [2] 1) 안드로이드 프로젝트 생성 2) AndroidManifest.xml - 인터넷 동작을 위한 인터 dain-ing.tistory.com 이러한 현상은 SSL 인증서를 무시하는 방법으로 해결이 가능했다. 우선 SSL 인증서란 웹 서버와 브라우저 간 안전하게 암호화된 연결을 수립하기 위한 표준 보안 기술을 말한다. 대형 사이트들의 경우 https 통신과 SSL인증서가 있음으로 ..