Size: a a a

2019 July 18

С

Слава in Kotlin Native
Месяц назад тыкал под iOS, писать уже можно, то только если как немного сторонней логики, которая напрямую с приложением не работает. AppCode уже шустро работает в обе стороны kotlin и swift, но есть проблема struct'урами, которые как Enum используются в iOS. Еще интеруп не вывозит множественное наследование с дженериками
источник

ob

oleh blef in Kotlin Native
Мне нужно чекать интернет соединение на iOs девайсе. Под Андроид все легко сложилось. Но для iOs никак не могу раздуплить, как оно у них работает. На свифте код очень легкий
private let monitor = NWPathMonitor()
   
   private let queue = DispatchQueue.global(qos: .background)
   
   override func viewDidLoad() {
       super.viewDidLoad()
       
       self.searchConnection()
   }

   private func searchConnection() {
       self.monitor.pathUpdateHandler = { path in
           if path.status == .satisfied {
               print("Connected")
           } else {
               print("Unconnected")
           }
       }
       
       self.monitor.start(queue: queue)
   }
У Native есть такая либа, import platform.Network.*
Но сами функции работают совсем по-другому. Я смог вроде как создать сам монитор
private var monitor = nw_path_monitor_create()
но у него нет метода updateHandler, есть другой либовский метод nw_path_monitor_update_handler_t, и его я к монитору уже никак не могу привязать 🙁
источник

AM

Andrew Mikhaylov in Kotlin Native
Слава
Месяц назад тыкал под iOS, писать уже можно, то только если как немного сторонней логики, которая напрямую с приложением не работает. AppCode уже шустро работает в обе стороны kotlin и swift, но есть проблема struct'урами, которые как Enum используются в iOS. Еще интеруп не вывозит множественное наследование с дженериками
Ого, а множественное наследование без дженериков поддерживается?
источник

ob

oleh blef in Kotlin Native
В свифте просто нет множественного наследования. Только от любого количества протоколов можна наследоваться
источник

AM

Andrew Mikhaylov in Kotlin Native
А, об этом речь. Тогда вопросов нет :)
источник
2019 July 30

PS

Pasha Shmigol in Kotlin Native
кто-то пробовал kotlin object вызывать из swift? это вообще возможно?
источник

BP

Bogdan Panchenko in Kotlin Native
Пробуй ObjName.INSTANCE
источник

PS

Pasha Shmigol in Kotlin Native
не хочет
не видит INSTANCE
думаю, это нельзя пока
по крайней мере в этой доке на писано, что можно
https://kotlinlang.org/docs/reference/native/objc_interop.html
но спасибо
источник

AM

Andrew Mikhaylov in Kotlin Native
источник

AM

Andrew Mikhaylov in Kotlin Native
Прям по вашей же ссылке, просто раздел о синглтонах, там явно о фабричном методе говорится
источник

PS

Pasha Shmigol in Kotlin Native
действительно, пропустил
спасибо большое
оно работает, но частично
методы вызываются нормально, но при попытке установить property ios приложение падает с SIGABRT
буду разбираться
источник

AM

Andrew Mikhaylov in Kotlin Native
Проверяйте, что у вас свежая версия нэйтива и дебажные билды, ребята постоянно работают над улучшением дкбажных символов.
источник

N

Nick in Kotlin Native
если кому интересно, нашел хороший кейс куда к/н с мультиплатформой ложится как влитой даже сейчас, с тегом experimental
бизнес логика для android, ios, Android TV, tvOS + web
ребята пилят уже 6 месяц, должны вот в прод зайти
даже ktor(cio) впихнули
источник

AM

Andrew Mikhaylov in Kotlin Native
Многопоточка в мультиплатформе с нейтивом всё так же топорна?
источник

N

Nick in Kotlin Native
да
источник

N

Nick in Kotlin Native
сиди корячайся с freeze
источник

N

Nick in Kotlin Native
я там работал год назад, поляки, судя по техлиду я им протолкнул котлин мп, но в этом случае имхо бизнес логика идеально впихивается
источник

N

Nick in Kotlin Native
небольшая рест аппка под кучу платформ
источник

AM

Andrew Mikhaylov in Kotlin Native
Тогда я, пожалуй, ещё подожду :)
Надеюсь, подвижки по relaxed mode в нейтиве таки значат, что в разумных временных рамках мы увидим многопоточку в корутинах.
источник

N

Nick in Kotlin Native
пока у них на ios/tvos (как и у всех) NsQueueDispatcher: Dispatcher { //тут все на iosовым dispatch_main_async
источник