
Nikita
08.06.2017
08:48:00
Ребята, подскажите плиз, мне нужно обновлять данные каждые 24 часа (стучатся на сервер), если я правильно понимаю, это должен быть сервис, верно? В голову приходил костыль запускать таймер который часы отсчитывает в приложении и сохранять время на диск, потом сравнивать.

Кирилл
08.06.2017
08:49:06

Nikita
08.06.2017
08:49:37
так то да, а если приложение сверну?

Roman
08.06.2017
08:49:48
свернешь - все будет ок

Google

Nikita
08.06.2017
08:49:53
и часы собъются)

Roman
08.06.2017
08:50:11
если свернешь - нет

Nikita
08.06.2017
08:50:15
ой
закрою нафиг

Roman
08.06.2017
08:50:29
так а как ты тогда хочешь обновить данные? :)
ЧТО у тебя будет обновлятть данные?

Nikita
08.06.2017
08:50:42
сервис же
ну или я что то не понимаю, вроде как есть сервисы которые работают когда апликуха в отключке?

Алексей
08.06.2017
08:51:34

Dima
08.06.2017
08:54:13
может я тоже не понял задачи, либо неперепроверил что-то
будет время, напиши подробнее, или даже юз кейс (можно на гитхаб выложить как приложение, если нужен пример с навигацией)

Алексей
08.06.2017
09:05:54
уже надо список экспериментов вести)

Google

Yaroslav
08.06.2017
09:19:49
С nfs кто-то работал поглубже уровня readtag, writetag?

Denis
08.06.2017
09:36:39
Сервис в бэкграунде тоже убьется

Nikita
08.06.2017
09:37:16

Denis
08.06.2017
09:37:17
Точнее, может быть убит
В андроиде все сложнее в этом плане
В нативе есть способы это обойти

Nikita
08.06.2017
09:38:35

Denis
08.06.2017
09:38:38
SyncAdapter юзать можно, foreground service как вариант (Но это лютый костыль)

Nikita
08.06.2017
09:38:52
почему лютый костыль?

Denis
08.06.2017
09:39:10
Есть вариант через AlarmManager сделать
Я писал аналогичную задачу, только там гпс трекер фоновый был по условиям

Nikita
08.06.2017
09:40:45
это на ведре AlarmManager?
а на яблоке?

Denis
08.06.2017
09:41:08
Но и там с бэкграундом не все гладко, как я слышал от знакомых. Но попроще чем в ведре

Nikita
08.06.2017
09:42:42
ты остановился таки на AlarmManager для ведра?

Google

Nikita
08.06.2017
09:42:53
я юзаю вроде

Denis
08.06.2017
09:43:18
Не очень решение, да, но время поджимало :(

Nikita
08.06.2017
09:43:58
а если бы не поджимало?
:)

Denis
08.06.2017
09:44:25
оно отличается на апи 16, 19 и 21+
я юзаю вроде
Сорцы reactContext не копал, но по виду - обычная помойка в виде Handler.post()

Nikita
08.06.2017
09:46:26
значит надо искать что то более адекватное

Алексей
08.06.2017
09:58:29
а на яблоке?
на яблоке вообще жестко с бэкграундом, в любой момент может убить

Denis
08.06.2017
09:58:45
Везде закручивают гайки

Denis
08.06.2017
09:59:00
Когда сервис в бэкграунде жрет батарейку/проц - грустьпечаль

Алексей
08.06.2017
09:59:02
вообще не оч круто держать в бэкграунде, батарею жрет же

Denis
08.06.2017
09:59:18

Egor
08.06.2017
09:59:23
на яблоке надо еще заслужить

Nikita
08.06.2017
09:59:24

Алексей
08.06.2017
09:59:33

Egor
08.06.2017
09:59:45
там система сама решит, когда запустить фоновую таску для получения новых данных

Алексей
08.06.2017
09:59:52

Google

Egor
08.06.2017
09:59:53
а юзер еще и отключить может это

Denis
08.06.2017
09:59:59
Doze на андроиде, лол

Nikita
08.06.2017
10:00:17

Egor
08.06.2017
10:00:18
и вроде в режиме энергосбережения совсем ничего не запускается

Denis
08.06.2017
10:00:19
Даст тебе раз в 2 часа окошко на 20-30 сек для апдейта данных и все

Egor
08.06.2017
10:00:24
знаю

Admin
ERROR: S client not available

Egor
08.06.2017
10:00:59
вроде того, "но это не точно" ©
временной интервал система сама подстраивает
если приложение юзеру не интересно по мнению системы - оно будет реже получать апдейты
на прошлой WWDC были вроде сессии про это, или даже еще раньше
про Apple Watch была точно, смотрел сам, и там показывалось, как это на часах работает - на телефоне принципы почти те же

Nikita
08.06.2017
10:04:00
или сложнее?

Egor
08.06.2017
10:04:28
you are welcome
https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

Nikita
08.06.2017
10:05:57
окей парни) но прежде чем читать уже 2 статьи (https://developer.android.com/training/sync-adapters/creating-sync-adapter.html и https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html) и писать свой модуль, подскажите может уже есть чтото более менее годное?)
или я за себя не ручаюсь)

Egor
08.06.2017
10:07:12
For background download apps:
• The system wakes the app at opportunistic moments to begin downloading new content.
я на RN ничего не юзал такого
только таймер для активного состояния использую

Google

Egor
08.06.2017
10:07:55
react-native-timer

Nikita
08.06.2017
10:08:25

Ptench?
08.06.2017
10:35:12
Где нибудь нужны новички новички? Не могу ничего найти

Andrey
08.06.2017
13:05:29
Ребят, а чтоб такую штуку запилить и отправлять линки в фейсбук, твиттер, смс, e-mail, чего посоветуете?
кто как реализовывал?

Anton
08.06.2017
13:06:22
https://facebook.github.io/react-native/docs/share.html ?

Denis
08.06.2017
14:29:31

Dima
08.06.2017
14:34:53
использовал
map который был в ядре, даже отправлял пулл реквест, который позволял кастомные тайлы и тд
потом вынесли в отдельный плагин который мейнтенит airbnb, тоже использовал
https://github.com/airbnb/react-native-maps/blob/8e78aa3923f6530c36054d765cbb1b63638031f4/example/examples/CustomTiles.js#L50
зачем там webview? или тогда вопрос по-другому, что не работает?

Roman
08.06.2017
14:38:35

Dima
08.06.2017
14:39:12
ну там под капотом обычные нативные карты, я не помню, по умолчанию url, но может как file:// можно
а нет, там google maps похоже
в MapKit точно можно с file://
у гугла надо смотреть https://developers.google.com/maps/documentation/ios-sdk/tiles