Java에서 오류를 시도할 때 Tips:Java Api Examples#일흑9
13836 단어 KotlinRoboVMJavaAndroidprogramcreek
'사흑'시리즈의 9라고 약칭한다.
1) "이 API, 어떻게 불러야 좋을까요?"등의 시행착오
부차적인 설치 사건, 예를 들어 RoboVM에서 Android/iOS 두 가지 대응하는 크로스플랫폼 개발(심지어 언어는 Kotlin)을 하고 인터넷의 정보에 의존한다.원하는 정보는 일반적인 것이 아니라 구체적인 실시 예이다.
한 마디로 하면 비틀거리면서 전진하는 과정에서 프로그램creek 사이트의 아래에 도착했다.
=> 링크
# 2008년부터 꽤 오래된 주식이니 아시는 분들은 아시겠죠.자기는 몰라, 기억이 안 나.
참고로 Python 버전 등(내용 미검증)도 있습니다.
=> 링크
한 마디로 하면 자바 API로 공개된 설치례 키워드는 색인 사이트처럼 검색된다.설치 사례의 수량에 따라 순위를 매기고, 상위 10000건은 아래부터 트레이스하기 시작한다
자신이 원하는 robovm의 API 설치 예는 3520 시리즈(괄호 안에 설치 예가 있는 수)로 분류됩니다.3521. com.vividsolutions.jts.geom.Coordinate (143)
3522. java.io.FilterWriter (143)
3523. org.apache.http.NoHttpResponseException (143)
3524. com.badlogic.gdx.backends.iosrobovm.IOSApplication (143)
3525. org.springframework.beans.factory.support.BeanDefinitionRegistry (143)
3526. com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration (143)
3527. org.eclipse.debug.core.ILaunchConfigurationType (143)
3528. javax.lang.model.type.TypeKind (143)
3529. net.minecraft.entity.projectile.EntityArrow (143)
3530. android.text.style.UnderlineSpan (143)
일이 많은 거 알지?
Java가 바로 지금입니다. 시행착오 중인 분들은 참고하시기 바랍니다.
다음은 Android 개발에 자신 있는 사람이 크로스플랫폼 개발 환경인 RoboVM에서 iOS 개발에 참여한 추가 기록입니다.
2) (주석) Java Api Examples에 도달하기 전에
2-1 먼저 사람이 쓰러져도 RoboVM을 기둥으로 삼는다.
RoboVM 같은 새로 오신 분들도 기둥으로 삼으신 분이 계십니다.그때 사람 기둥의 결과가 꼭 확실한 것은 아니다(혹은 피곤하고 고생스럽다는 메시지가 많다).
예를 들어 만화 제목의: 결국 RoboVM 사용이 중지되었습니다.
그럼에도 불구하고 RoboVM 사용
3521. com.vividsolutions.jts.geom.Coordinate (143)
3522. java.io.FilterWriter (143)
3523. org.apache.http.NoHttpResponseException (143)
3524. com.badlogic.gdx.backends.iosrobovm.IOSApplication (143)
3525. org.springframework.beans.factory.support.BeanDefinitionRegistry (143)
3526. com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration (143)
3527. org.eclipse.debug.core.ILaunchConfigurationType (143)
3528. javax.lang.model.type.TypeKind (143)
3529. net.minecraft.entity.projectile.EntityArrow (143)
3530. android.text.style.UnderlineSpan (143)
2-1 먼저 사람이 쓰러져도 RoboVM을 기둥으로 삼는다.
RoboVM 같은 새로 오신 분들도 기둥으로 삼으신 분이 계십니다.그때 사람 기둥의 결과가 꼭 확실한 것은 아니다(혹은 피곤하고 고생스럽다는 메시지가 많다).
예를 들어 만화 제목의: 결국 RoboVM 사용이 중지되었습니다.
그럼에도 불구하고 RoboVM 사용
# 다음은 Kotlin 코드이지만 Java에서도 공통된 내용입니다.Java에서 다음과 같은 코드는 RoboVM 요약 등에 있습니다.RoboVM 요약은 몇 달 전 RoboVM의 상황을 기록하기 때문에 RoboVM을 인간 기둥으로 삼고 싶은 자바와 Kotlin을 참고할 수 있습니다.
2-2 RoboVM에서 자동으로 생성된 코드를 확인합니다.
자동으로 생성된 코드는 일목요연하여 어렵지 않다.
MyViewController.kt
package com.mycompany.myapp
import org.robovm.apple.uikit.UILabel
import org.robovm.apple.uikit.UIViewController
import org.robovm.objc.annotation.CustomClass
import org.robovm.objc.annotation.IBAction
import org.robovm.objc.annotation.IBOutlet
@CustomClass("MyViewController")
class MyViewController : UIViewController() {
private val counterStore = CounterStore()
@IBOutlet
private val label: UILabel? = null
@IBAction
private fun clicked() {
counterStore.add(1)
label!!.text = "Click Nr. " + counterStore.get()
}
}
@CustomClass 등의 주석은 이름 공간 org입니다.robovm.objc.annotation과 관련이 있음을 알 수 있다.말 그대로 이것은 Objective-C 대상에 속하고plist(XML 파일)를 통해 XCode가 제어한다.물론 여기서 출발해도 되지만 iOS 개발 미숙자로서 전체적인 상황을 똑똑히 볼 수 없다는 예감이 든다.그래서 모두 코드로 쓰세요.또한 CounterStore는 다음 폴더 구조와 같이 Android 옆에 있는 공통 모듈의 Core 산하에 있습니다.
[참조] 폴더 구성:
코드에 2-3UI 요소 추가 시작(같은 roboscala 참조)
유감스럽게도github 등은 현재 버전의 RoboVM에서 실행되고 있는 Kotlin의 코드가 없기 때문에 roboscala의 코드를 참고할 수 있도록 허락해 주십시오.여기는 Pure Scala RoboVM 개발을 열심히 추진하고 있는 프로젝트입니다. (gradle이 아니라 sbt 기반입니다.)
https://github.com/roboscala
yViewController 수정 1.kt
package com.myapp
import org.robovm.apple.uikit.* // UILabel,UIViewController etc.
import org.robovm.apple.foundation.* // NSSet etc.
import org.robovm.objc.annotation.* // CustomClass,IBAction,IBOutlet
import org.robovm.apple.coregraphics.CGRect
@CustomClass("MyViewController")
class MyViewController : UIViewController() {
private val counterStore = CounterStore()
// Code Only.
val textField = UITextField(CGRect(20.0, 190.0, 280.0, 48.0))
override fun viewDidLoad() {
textField.setContentVerticalAlignment(
UIControlContentVerticalAlignment.Center)
textField.setBorderStyle(UITextBorderStyle.RoundedRect)
textField.setClearsOnBeginEditing(true)
textField.text = "ここに文字列を入力"
getView().addSubview(textField)
}
// XCode Storyboard based code
@IBOutlet
private val label: UILabel? = null
@IBAction
private fun clicked() {
counterStore.add(1)
var name = textField?.getText() ?: "未設定"
label!!.text = "${counterStore.get()}回目:${name} です。"
}
}
"코드만"아래에 TextField 요소를 추가했습니다.원래 Scala 코드와 다른 점은 CGRect의 매개변수가 정수(20)인지 실수(20.0)인지 여부입니다.에뮬레이터에서 수행된 예:
2-4 그러면 모두 Kotlin 코드입니다.디도 오세요...부드럽다
단추를 눌렀을 때의 이벤트 처리가 없는pure scala 코드입니다.그래서 저는 자바의 실시 사례를
보아하니, 변환(RoboVM을 포함하는 IntelliJ 계열의 도구에서 자바->Kotlin을 자동으로 변환할 수 있음)을 진행하여 이동하는 코드가 된다.
btn1.addOnTouchUpInsideListener(object:OnTouchUpInsideListener {
override fun onTouchUpInside(c:UIControl, e:UIEvent) { onClicked() }
})
...Object 같은 건데 왠지 멋있지 않네...부드럽다그럼 디는 선인들에게 배운 후에 이런 느낌을 받았어요.
//DIによる初期化
private val context = getApplicationContext()
instantiateInjector(con)
fun instantiateInjector(context :android.content.Context) {
val appModule = AppModuleImpl(context)
val dataModule = DataModuleImpl(appModule)
...
Inject.instance = InjectorImpl(appModule, domainModule...)
}
드디어 해결됐어.하지만 이것은 Android 환경을 위한 DI 설치입니다.iOS를 지원하는 DI 구현 방법...부드럽다2-5 ...Java Api Examples와 함께 질퍽거리는 벽을 넘을 수 있을까요?
사람 기둥 설치, 그거랑 이거랑 다 그렇구나...고혁아...내가 말하기 시작했어...부드럽다이것은 흔히 있는 일이다.
이때,robovm.apple.uikit.Uibutton(uikit의 roboVM 회사의 자바 랩)으로 닦으면 자바 Api Examples에 도착합니다.
Java Code Examples for org.robovm.apple.uikit.UIButton
아, 이런 부차적인 이야기의 설치 예가 10개나 나오다니 정말 대단하다.
......간단하게 투덜거리는 시간을 절약할 뿐이지만 자바 & JVM 언어로 시행착오를 동반한다.
Reference
이 문제에 관하여(Java에서 오류를 시도할 때 Tips:Java Api Examples#일흑9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/e-a-st/items/4d776b2374dfaf7998d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)