개발자 문서를 한글 버전으로 보면 아직 번역이 되지 않았는지 이 정보와는 다르게 이전 버전에 대한 이야기만 나옵니다. 그래서 영어 버전으로 페이지를 열어서 구글 번역기를 돌려 보았습니다. 역시 최신 버전에 대한 이야기가 나옵니다.
이제 조금은 더 다양한 디자인으로 다양하게 앱을 만들어 볼 수 있을 듯합니다.
이번 릴리스에서는 수정자 성능이 크게 향상되어 구성 시간이 최대 80% 향상되었습니다 . 우리는 다양한 Compose API에서 발생하는 할당을 면밀히 조사하고 여러 영역, 특히 그래픽 스택 및 벡터 리소스 로딩에서 총할당을 줄였습니다. 이는 Compose의 메모리 공간을 줄일 뿐만 아니라 메모리 할당에 소요되는 시간을 줄이고 가비지 수집을 줄임으로써 성능을 직접적으로 향상합니다. BasicText수정자 작업을 지원하는 새로운 렌더링 시스템으로 전환하여 초기 구성 시간에 평균 22%의 이득을 가져왔고 텍스트가 포함된 복잡한 레이아웃의 한 벤치마크에서는 최대 70%의 이득을 가져왔습니다.
구글이 말하는 개선사항에서 발췌했습니다. 성능이 개선됩니다. 앱이 조금은 더 빠르게 동작을 한다는 이야기가 될 듯합니다.
다른 링크에서 얻은 정보도 정리를 해 보았습니다.
멀티플랫폼 1.5.0-beta01 Compose의 Kotlin 다중 플랫폼 측면에서도 많은 일이 일어나고 있습니다! 1.5.0-beta01에는 위에서 언급한 성능 향상 기능이 포함되어 있으며 다른 플랫폼에 대한 향상된 기능도 추가되었습니다. 아래에 몇 가지 주요 내용을 나열했지만 그 안에는 더 많은 내용이 있습니다. 🍎 iOS용 Compose 하이라이트 기본 스크롤 및 느낌(일반적인 iOS 고무밴드 느낌) 단순화된 다중 플랫폼 리소스 관리 San Francisco가 이제 기본 글꼴입니다. TextField수정 및 개선 사항이 WindowInsets추가되었습니다. 120hz 화면 지원(기존 60hz) 수정됨: 더 이상 설정할 필요가 없습니다 isStatic = true (iOS에서 Compose를 처음 접하는 많은 개발자가 겪는 문제). 🖥️ 데스크톱용 Compose 하이라이트 Segoe UI는 이제 Windows의 기본 글꼴입니다. Swing 상호 운용성 개선 🌐 웹용 Compose 하이라이트 Scrollbar이제 일반적으로 사용 가능합니다(데스크톱에만 사용 가능) 사용자 정의 캔버스 ID를 설정할 수 있습니다. CanvasBasedWindow 다시 한번 말씀드리지만, 제가 가장 흥미로웠던 몇 가지 하이라이트는 다음과 같습니다. 특히 iOS 업데이트를 통해 Compose Multiplatform이 기본 환경에 훨씬 더 가까워졌습니다. 각 릴리스에는 더 많은 내용이 있으므로 릴리스 노트(아래 링크)를 읽어 보시기 바랍니다.
결론 Compose 1.5는 Android, iOS, 데스크톱 및 웹의 전반적인 환경을 크게 향상합니다. 멀티플랫폼 Compose를 사용하여 더 많은 앱이 구축됨에 따라 품질이 지속적으로 향상되는 것을 보니 반갑습니다. 가장 좋은 점은 종속성을 업데이트하기만 하면 이러한 개선 사항을 거의 무료로 얻을 수 있다는 것입니다.
이런 가이드 들은 java 을 이용한 서버(?)에서 구현이 가능한 코드 등을 제공하고 있습니다. 저는 android에서 접속을 해야 하는 데 말입니다. was로 구성을 하는 거나, android에서 구성하는 것의 차이는 아마도 지연이 발생하는 처리를 어떻게 하는 가 일 듯합니다.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)
connectToDatabase() }
private fun connectToDatabase() { Thread { val connectionString = "jdbc:sqlserver://your-server-name.database.windows.net:1433;database=your-database-name" val username = "your-username" val password = "your-password"
// Now you can perform database operations using the 'connection' object. } catch (e: Exception) { e.printStackTrace() } finally { connection?.close() } }.start() } }
manifest 에 internet 을 접속할 수 있는 권한은 추가 해야 합니다. 그래야 접속을 시도해 볼 수 있으니까요?
이제 접속 테스트는 해 볼 수 있을 것 같습니다. Thread 을 이용하는 것 보다는 lifecycleScope 을 이용하는 방식으로 수정을 해 보는 것이 kotlin 에 조금더 접합한 코드가 되지 않을 까 하는 생각이 듭니다.
접속이 되었으니 select 하는 구문등은 상상으로 남겨 두겠습니다.
다만, 이렇게 접속 DB 접속을 하는 코드 구현은 추천하지 않습니다. 요즘은 워낙 debugging 을 잘 하기 때문에 DB 접속에 대한 정보가 누출된 소지가 있습니다. 그런 부분은 관리자의 역량으로 남겨 두겠습니다.
#스하리1000명프로젝트, A veces es difícil hablar con trabajadores extranjeros, ¿verdad? ¡Hice una aplicación sencilla que ayuda! Escribes en tu idioma y los demás lo ven en el suyo. Se traduce automáticamente según la configuración. Súper útil para chatear fácilmente. ¡Echa un vistazo cuando tengas la oportunidad! https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416
이번주는 유난히도 날씨가 오락 가락 하는 한 주였던 거 같습니다. 오늘은 비가 무진장 내린 후 바다를 바라보다가 저 멀리 보길도 끝 무렵의 섬들이 보이는 것을 알게 되어 갤럭시 23 울트라의 줌 사진 비교를 한 번 올려 볼까 합니다.
1배
1배
30배 줌
30배
70배
70배
100 배 중
100배
1배 기본 사진에서 이 섬을 찾아 보세요... 보이시나요? 그 옆으로 보이는 섬들이 보길도 등등의 섬들이지 않을까 싶습니다. 100배 줌으로 보이는 섬은 대관탈도라는 섬으로 인식되기는 합니다. 제주에서 추자도를 바라보면 중간에 있는 섬입니다. 대략 거래는 30Km 정도 되는 것으로 보이는데 이 정도의 Zoom이라면... 어떨까요?
python 으로 게시물 댓글에 자동 답글을 다는 이야기를 적었던 부분인데, 예전에 기술했던 글이라 정리가 좀 미흡해 보이기는 합니다. 이제 필요한 것은 accessToken을 얻어야 하는 데, 이 부분이 번거로운 부분이 될 듯합니다. 그 이야기는 뒤에 다시 해 보도록 하겠습니다.
tistory API 인증 알아보기
accessToken 을 받기 위해서는 인증을 거쳐야 합니다. 저 python 예시 나와 있는 이런저런 코드에 대한 설명이 부족하여 보기는 힘들어 보이지만.
{0} 위에서 처럼 app id 을 넣고 {1] 위에서 확인되는 Secret Key 값을 넣습니다. {2} 에는 callback 주소로 치환하고 {3} 에는 방금 얻어온 code 뒤에 값을 채워 url을 만든 다음 크롬이나 에지 등에 입력하면 accessToken을 얻을 수 있습니다.
새로운 댓글 목록 받아 오기
이제 API 가이드를 보면서 댓글 목록을 받아 오겠습니다. REST API 을 호출하도록 하고 있어서 저는 retrofit을 이용해서 해 보고자 합니다.
data class NewestResponse( val id : String, // 댓글 ID val date : String, // 댓글 작성시간 timeStamp val postId : String, // 작성된글 ID val name : String, // 작성자 val homepage : String, // 작성자 홈페이지 주소 val comment : String, // 댓글 내용 val open : String, // Y 공개, N 비공개 val link : String, )
data class NewestResponseMain( val tistory : NewestItem )
data class NewestItem( val item : NewestComments )
data class NewestComments( val url : String, val secondaryUrl : String, val comments : ArrayList<NewestResponse> )
실제 호출에서는 NewestResponseMain 을 이용합니다. 사유는 API 가이드를 보면 json 응답 모양을 보고 만들었습니다.
아래 응답 예시를 보면 tistory 를 큰 block으로 해서 item 아래 comments 아래 comment을 들어가야 세부 목록을 볼 수 있습니다. 그래서 모양은 이렇게 구현했습니다.
output 은 json 타입으로 받아서 분석을 할 예정이라 json으로 기술되었으며, blogname 은 우리 블로그 URL의 prefix을 적어 둡니다. 이제 응답이 오면 어떻게 될까요?
조회화면
이제 이 앱을 통해서 더 열심히(?) 찾아보도록 하겠습니다. 저기 URL 주소를 클릭하면 해당 블로그의 제일 마지막 게시글을 찾아서 이동합니다. (아직 개발 중이라 안 되는 페이지도 있을 수 있습니다. 블로그 마다 테마 설정에 따라 tag 값들이 달라지기 때문에 안되는 페이지는 하나씩 보완을 해야 할 것 같습니다.)
#billcorea #운동동아리관리앱 🏸 Schneedle, ¡una aplicación imprescindible para los clubes de bádminton! 👉 Match Play: registra puntuaciones y encuentra oponentes 🎉 ¡Perfecto para cualquier lugar, solo, con amigos o en un club! 🤝 Si te gusta el bádminton, definitivamente pruébalo.
Ir a la aplicación 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay