본문 바로가기

컴퓨터 공학231

[ 안드로이드 프로그래밍 ] 토스트 메시지 위치 변경하기 안드로이드 스튜디오 프로그래밍_토스트 메시지 위치 변경하기_예제포함 예제 ■ xml 파일 - 원하는 위치 값(X, Y)을 입력받기 위해 EditText를 사용합니다. - X, Y위치 값을 받는 칸임을 보여주기 위해 hint의 속성을 'X위치','Y위치'라고 해줍니다. - 띄우기 버튼을 눌렀을 때 토스트 메세지를 띄웁니다. ■ java 파일 package com.example.practicecode; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import androi.. 2020. 4. 8.

[ 안드로이드 프로그래밍 ] 간단한 예제로 서비스 이해하기2 (서비스에서 액티비티로 데이터 전달) 안드로이드 스튜디오 프로그래밍_서비스에서 액티비티로 데이터 전달_예제포함 이번에는 안드로이드에서 서비스를 실행시키고 데이터를 액티비티로 전달하는 작업을 구현해볼 것입니다. 예제를 따라하기 위해서 앞서 선행되어야 하는 코드가 있으니 '서비스 이해하기1' 글에서 확인해주세요. 아래 링크 클릭하시면 됩니다. https://bite-sized-learning.tistory.com/137 [ 안드로이드 프로그래밍] 간단한 예제로 서비스 이해하기 유튜브를 보는 중에 카톡 알림을 받은 적이 있을 것입니다. 이렇게 카톡 앱을 화면에 띄우지도 않아도 카톡 알림을 받을 수 있는 이유는 화면 뒤의 공간인 백그라운드에서 실행되는 "서비스"가 있기 때문입니다... bite-sized-learning.tistory.com 데이터.. 2020. 4. 7.

[ 안드로이드 프로그래밍] 간단한 예제로 서비스 이해하기1 (액티비티에서 서비스로 데이터 전달) 안드로이드 스튜디오 프로그래밍_액티비티에서 서비스로 데이터 전달_예제포함 유튜브를 보는 중에 카톡 알림을 받은 적이 있을 것입니다. 이렇게 카톡 앱을 화면에 띄우지도 않아도 카톡 알림을 받을 수 있는 이유는 화면 뒤의 공간인 백그라운드에서 실행되는 "서비스"가 있기 때문입니다. 오늘은 안드로이드 앱의 구성 요소의 하나이기도 한 "서비스"에 대해 알아보겠습니다. 우리는 "서비스"를 통해서 단말이 항상 실행되어 있는 상태로 데이터를 주고받을 수 있습니다. 이 "서비스"를 시작하기 위해서는 간단히 startService() 메소드를 호출하면 됩니다. 그럼 이렇게 메모리에 서비스가 생성이 됩니다. 만약 서비스 실행 후에도 이 메서드를 호출하면 어떻게 될까요? 여러 서비스가 실행될까요? 답은 아니요 입니다. 메서.. 2020. 4. 6.

[아이폰앱개발]아이콘 쉽게 넣는 법(asset catalog creator 사용하기) [아이폰앱개발]아이콘 쉽게 넣는 법(asset catalog creator 사용하기) 아이폰 아이콘 이미지를 쉽게 넣는 법을 소개하겠다. 잘 아시다시피 아이폰 앱 개발시 이미지를 1x, 2x, 3x를 준비해야 하는데 자세한 이유는 아래 페이지를 참고바란다. https://developer.apple.com/library/archive/qa/qa1686/_index.html Technical Q&A QA1686: App Icons on iPhone, iPad and Apple Watch Technical Q&A QA1686 App Icons on iPhone, iPad and Apple Watch Q: What icons need to be included in an iOS Application, Appl.. 2020. 2. 26.

[스위프트] 데이터 저장 시 주의할 점(+ 기본형 Int가 있는 이유) ■ 개요 1 float와 Double에서 2 Int에서 1 float와 Double에서 float와 Double에 값을 넣어도 실제로 저장되는 값의 범위는 제한적이기 때문에 잘 확인해야 한다. 2 Int에서 스위프트에 Int 종류에는 다음 것들이 있다. 저 중에서 Int8을 골라서 이 자료형에 저장할 수 있는 데이터 최소, 최대값을 알려면 .min, .max을 입력하면 된다. Int8은 signed(부호있는) integer이기 때문에 -128부터 127까지 저장할 수 있다. 따라서 -128~127 범위 밖의 데이터를 저장하면 overflow(오버플로우) 에러발생한다. ★ 타입이 허용하는 범위의 데이터를 저장하는 것이 중요하다. 또한 Int의 (option 누르고 나오는) Discussion에서 32-bi.. 2020. 2. 24.

[스위프트] 왕초보를 위한 자료형 개념(+자료형 확인하는 방법) 글 개요 1. 자료형 확인하는 방법 2. 자료형 종류 3. 자료형과 관련된 스위프트 특징 1. 스위프트는 자료형을 명시하지 않아도 내부적으로 타입에 맞게 데이터를 저장한다. 그래서 코드를 작성하고 변수의 자료형을 확인하고 싶다면 option 키를 누른 채 변수명을 클릭한다. 그럼 Declaration 아래에 키워드 변수명: 자료형(Data type)이 나온다. 하지만 데이터 없이 변수나 상수를 선언만 할 때는 자료형(Data type)을 꼭 명시해줘야 한다. 아니면 에러가 발생한다. 자료형(Data type)을 명시하지 않은 예 자료형(Data type)을 명시한 예 2 기본적으로 스위프트가 가지고 있는 자료형(Data type)은 String, Bool, Int, Double있다 // tring_ 문자.. 2020. 2. 24.

[스위프트] 변수, 상수, 함수, 클래스 기본 개념 (예제로 한번에 이해하기) 오늘은 아이폰 개발에 필수 언어인 스위프트를 통해서 프로그래밍의 기본 개념이라 할 수 있는 변수, 상수, 함수, 클래스에 대해서 알아보겠습니다. 먼저 예제 실습을 위해 준비를 해보겠습니다. 👩‍💻 👨‍💻 xcode에서 playground를 열어줍니다. 기존에 import... 라고 미리 쓰여져 있는 코드를 지워주세요. 간단한 수식을 적어줍니다. 3 * 3 은 9인줄 다들 아시겠지만;; 그래도 값을 확인해봅시다. 작성한 코드 끝에 커서를 대면 코드 줄 숫자 대신 화살표가 뜹니다. 눌러주세요. 그럼 우측 창에서 값을 확인하실 수 있습니다. 9 맞네요ㅎㅎ 이렇게 숫자와 연산자만으로 원하는 계산을 할 수 있습니다. 그런데 왜 변수, 상수 개념이 필요할까요? 변하는 값 변수,, 고정 값 상수.. 도대체 왜?? 그.. 2020. 2. 16.

[스위프트] NavigationController 텍스트 변경, 없애기_코드포함 NavigationController 텍스트 변경, 없애기 ■ BackButton. 색상 바꾸는 법 viewDidLoad() 에 다음 코드 입력 self.navigationController?.navigationBar.tintColor = UIColor.green ■ RGB로 넣는 법 self.navigationController?.navigationBar.tintColor = UIColor(red: 255/255, green: 0/255, blue: 0/255, alpha: 1.0) ■ 텍스트 없애는 법 self.navigationController?.navigationBar.topItem?.title = "" -------------------------- iOS프로그래밍 학습을 위해 더 많은 예제 .. 2020. 2. 15.

[ 스위프트 ] TextView에 radius (테두리 둥글게) 적용하기 viewDidLoad()에 아래 코드를 입력해주세요. textView.layer.cornerRadius = 10 2020. 2. 15.

[스위프트] 초보를 위한 delegate 정리 2 ( 쉬운 예제 포함 ) 프로젝트에 피커뷰를 하나 추가해주세요. 피커뷰에 대한 액션을 만들어야 된다고 생각할 수 있지만 막상 action이 없습니다. 그럼 어떻게 피커뷰에 원하는 데이터를 넣을 수 있을까요? 바로 UIPickerViewDelegate, UIPickerViewDataSource 를 사용하면 됩니다. 채택과 동시에 swift 파일 안에 선언해줘야 하는 함수들이 있는데 그렇지 않으면 오류 납니다. 그런 함수들을 어떻게 확인할까요? cmd키를 누른 채 글자에 커서를 갖다두면 링크가 생깁니다. 누르시고 Jump to Definition를 클릭하시면 사용할 수 있는 함수들을 볼 수 있습니다. 아래와 같이 (Definiation)에 있었던 optional 이 붙어있지 않은 함수를 구현하면 다음과 같이 원하는 결과를 얻을 수 .. 2020. 2. 15.

[안드로이드 스튜디오] 오류 해결_HardCoded HardCoded string 이유인 즉, HardCoded string, 사용자가 직접 코딩(코드로 작성)한 문자열이다 따라서 안드로이드 스튜디오는 @string resource 를 사용 할 것을 권하고 있다. 2019. 12. 27.

[안드로이드 스튜디오]로그캣 필터 사용 방법 1. 안드로이드 스튜디오 하단에서 Logcat 아이콘을 눌러서 logcat 창을 띄운다. 2. 오른쪽 상단부분에 Show only selected application 이 쓰여져 있는 목록을 연다. 3. Edit Filter Configuration 를 누른다. 4. 로그캣 필터를 만들어보자. Filter Name Log Tag(regex) 실제로 코드상에 들어가는 태그 Log Message(regex) 보고 싶은 메시지만 출력하도록 Pakage Name 패키지 이름 PID 프로세스 아이디 Log Level 로그의 중요도 레벨 (중요도 순 : Verbose < Info < Debug < Warn < Error ) 예) public class MainActivity extends AppCompatActiv.. 2019. 12. 11.

[안드로이드 스튜디오] 데드락 발생 이유? 여러 개의 스레드*가 동시에 공통 메모리 리소스에 접근할 때 데드락 발생함 데드락이란 동시에 두 곳 이상에서 요청이 생겼을 때 어떤 것을 먼저 처리할지 판단할 수 없이 발생하는 시스템 상의 문제 *스레드 : 동시 수행이 가능한 작업 단위, 현재 수행 중인 작업 이외의 기능을 동시에 처리할 때 새로운 스레드를 만들어 처리 2019. 12. 9.

[안드로이드 스튜디오]ems란? 실제 문자열의 크기에 상관없이 문자의 폭에 맞게 너비 설정 ems는 layout_width가 wrap_content일 때만 적용할 수 있음 2019. 12. 9.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_07 선택 위젯 만들기 07-1 나인패치 이미지 알아보기 - 그래픽 프로그램에서 만든 버튼 이미지를 표시하면 단말에 따라 왜곡현상이 일어날 수 있기 때문에 해결 방법을 찾아야했다. - 나인패치(Nine Patch) 이미지 왜곡 해결 방안이다. - 수정한 이미지의 파일 이름은 ooo.9.png 처럼 파일 확장자 앞에 9을 붙이면 안드로에서는 그 파일을 원본 이미지의 가로, 세로 끝부분의 픽셀을 모두 나인패치 이미지의 정보를 담은 것으로 인식한다. > SampleNinePatch 프로젝트 ▼ activity_main.xml a 07-2 새로운 뷰 만들기 - 뷰의 영역과 크기는 그 뷰를 포함하고 있는 레이아웃의 영향을 받아 정해진다. 이때 개발자가 뷰의 상태에 따라 추가적인 코드를 넣을 수 콜백 메서드가 호출됨 - 뷰가 스스로의 크.. 2019. 12. 7.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_15 푸시 서비스와 센서 및 단말 기능 사용하기 15-1 진동과 소리로 알려주기 - 사용자에게 무언가를 알려주는 가장 간단한 방법은 진동과 소리 - 안드로이드에서 진동은 얼마동안 안 울리도록 할 것인지 지정할 수 있음-> Vibrator라는 시스템 서비스 객체를 사용 > SampleVibrate 프로젝트 ▼ MainActivity.java package com.ogrg.techtown.vibrate; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.media.MediaPlayer; import android.media.Ringtone; import android.media.RingtoneManager; import android... 2019. 12. 3.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_11 단말에 데이터베이스와 내용 제공자 만들기 11-1 모바일 데이터베이스란? - 데이터를 간단하게 저장하고 싶을 때는 SharedPreferences 를 사용, SQL 문 - 안드로이드는 Enbedded Database로 개발된 경량급 관계형 데이터베이스인 SQLite를 가지고 있다. 11-2 데이터베이스와 테이블 만들기 - 간단한 방법으로는 Context 클래스에 정의된 openOnCreateDatabase() 메서드를 사용하는 것 - 위 메서드의 첫 번째 파라미터는 '데이터베이스 이름' 두 번째 파라미터는 '사용 모드', 세 번째 파라미터는 Null이 아닌 객체를 지정할 경우 쿼리의 결과 값으로 반환되는 데이터를 참조하는 커서를 만들어낼 수 있다. >SampleDatabase 프로젝트 ▼ MainActivity.java package com.o.. 2019. 12. 3.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_10 서버에 데이터 요청하고 응답받기 - 단말에서 독집적으로 동작하는 앱을 만들기 보다는 서버에 있는 데이터를 요청에서 사용하는 경우가 많다. 10-1 네트워킹이란? ■ 네트워크 연결 방식 이해하기 10-2 소켓 사용하기 ■ HTTP 프로토콜과 소켓 >SampleSocket 프로젝트 ▼MainActivity.java package com.ogrg.techtown.push.socket; import androidx.appcompat.app.AppCompatActivity; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceActivity; import android.util.Log; impo.. 2019. 12. 3.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_05 프래그먼트 이해하기 - 화면 안에 들어가는 레이아웃이 중복되지 않도록 한 번만 정의하고 재사용할 수 있도록 만든 것이 프래그먼트 05-1 프래그먼트란? ■ 프래그먼트에 대해 이해하기 - 하나의 액티비티 안에 다른 액티비티를 넣는다는 것은 단말의 리소스를 많이 사용하는 비효율적인 방법 - 프래그먼트는 하나의 화면 안에 들어가는 부분 화면과 같아서 하나의 레이아웃처럼 보인다. - 프래그먼트의 사용 목적 1. 분할된 화면들을 독립적으로 구성하기 위해 사용함 2. 분할된 화면들의 상태를 관리하기 위해 사용함 액티비티 시스템에서 관리하는 화면 프래그먼트 단순히 액티비티 위에 올라가는 화면의 일부 즉 '부분 화면' - 프래그먼트는 항상 액티비티 위에 올라가 있어야 한다. - 따라서 프래그먼트가 제대로 동작하는 시점은 프래그먼트가 메모.. 2019. 12. 1.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_04 여러 화면 간 전환하기 04-1 레이아웃 인플레이션 이해하기 - 이제까지 하나의 화면에 대하여 화면을 어떻게 보여줄지 결정하는 XML 레이아웃을 정의했다. - 구조를 나타내는 XML과 화면의 기능을 담당하는 java 파일을 연결해줘야 한다. - 화면의 기능을 담당하는 소스 파일에는 AppCompatActivity를 상속하는 MainActivitiy 클래스가 자동으로 만들어진다. - 여기서 R은 프로젝트 창에 보이는 res 폴더를 의미한다. - 앱이 실행될 때 XML 레이아웃의 내용이 메모리에 객체화되고 객체화된 XML 레이아웃을 소스 파일엥서 사용 - 이렇게 XML 레이아웃의 내용이 메모리에 객체화되는 과정을 인플레이션이라고 한다. - 메모리에 객체화되지 않은 버튼 객체를 참조하려고 했기 때문에 심각한 오류로 앱 자체를 멈추게.. 2019. 11. 29.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_03 기본 위젯과 드로어블 사용하기 03-1 기본 위젯 다시 한 번 자세히 공부하기 ■ 텍스트뷰 자세히 살펴보기 - 화면에 글자를 보여주는 역할 - strings.xml 파일에 작성한 문자열을 지정할 수 있음, 이 파일에 정의된 문자열은 text 속성에서 @string/... 와 같은 형식응로 참조해야 합니다. - XML 레이아웃 파일과 문자열 파일을 구분하는 것이 좋음 - 안드로이드에서 다국어를 지원하려면? 더보기 app/res 폴더 안에 두 개의 폴더를 만든 후 그 안에서 stings.xml 파일을 넣어둔다. 영어는 values-en, values-ko - textColor 속성 : 텍스트뷰에서 표시하는 문자열의 색상, '#AARRGGBB' 포맷 사용 - textSize 속성 : 단말 해상도에 따라 글자의 크기를 일정한 크기로 보일 수.. 2019. 11. 28.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_02 레이아웃 익히기 02-1 안드로이드에 포함된 대표적인 레이아웃 살려보기 ConstraintLayot LinearLayout RelativeLayout FrameLayout TableLayout - 뷰에 색 넣기 #ff0000 //빨간색 #00ff00 //녹색 #0000ff // 파랑 투명도를 넣고 싶다면 맨앞에 00 추가 - 배경으로 이미지를 지정할 수 있음 /app/src/main/res/drawable 이 폴더에 이미지 파일 넣기 02-2 리니어 레이아웃 사용하기 ■ 리니어 레이아웃의 방향 설정하기 방향 설정할 때는 orientation 속성을 사용하여 가로 방향은 horizontal, 세로 방향은 vertical이라는 값으로 설정 ■ 자바 코드에서 화면 구성하기 - xml 파일은 화면을 위해 만든 자바 소스 파일과.. 2019. 11. 27.

[Do it 개정6판_안드로이드 스튜디오]둘째마당_01 안드로이드 스튜디오 설치 안드로이드에서는 하나의 화면을 Activity로 Activity 안에 들어가는 각각의 구성 요소는 View를 만들어서 추가 Activity 안의 View들을 배치하는 것을 Layout 이라고 한다. 01-1 안드로이드 스튜디오 제대로 익히기 안드로이드 스튜디오는 인텔리제이라는 개발 도구를 확장시켜 만든 것 자동으로 앱 제작에 필요한 파일들을 만들어 주는데 앱의 첫 화면은 기본으로 제공 패키지 이름 : 앱을 구분하는 고유한 값 즉 전 세계에서 만들어지는 앱과 중복되지 않는 유일한 이름 shortcut : ctrl + tab = xml file java file 클래스에 커서를 대고 ctrl + Q 클래스에 대한 API를 볼 수 있음 메서드 소괄호 안에 들어갈 수 있는 파라미터(매개변수)가 어떤 것들이 있는.. 2019. 11. 27.

[Do it 개정6판_안드로이드 스튜디오] 첫째마당 이 장에서는 자바 소스 코드를 이해하는 것보다 안드로이드 스튜디오를 사용하여 앱을 개발하는 과정을 이해하는 것이 더 중요하다. public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); } public void onButtonOnClinked(View v) { Toast.makeText(this, "버튼이 눌렸습니다. ", Toast.LENGTH_SHORT).show(); } public void onButtonOnClin.. 2019. 11. 27.

[안드로이드 스튜디오] ListView(리스트뷰) 만들기 리스트뷰를 만들거니까 간단한 레이아웃 작업부터 들어가보자. Linear 기본 셋팅이 Horizental로 나온다. 변경하려면 activity_main.xml에서 layout 태그 안에 orientation:vertical로 지정 MainActivity.java package com.ogrg.listexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Li.. 2019. 11. 24.