
hlomzik
03.04.2017
17:01:08
т.е. нужны статичные элементы, которые не скроллятся по событию
ну т.е. событие приходит, а элементы двигаю я
хммм... stickyHeader можно попробовать

Google

Алексей
03.04.2017
17:04:10

hlomzik
03.04.2017
17:08:01
Боже мой дааааа
вот этого не понял
ну закрепленные элементы. получается элемент, который не мешает скроллить ScrollView и при этом сам не скроллится. собственно, по определению :)

Valentin
03.04.2017
20:22:10

Vladimir
03.04.2017
20:22:44
Ну хоть бы коды ошибок добавить

Valentin
03.04.2017
20:25:40
Ну хоть бы коды ошибок добавить
Если конкретная функциональность имеет смысл сразу на обоих платформах, и явно/прозрачно имплементируется на тех низскоуровневых системых библиотеках что используются сейчас... Я буду рад пропушить PR c этими правками.

Vladimir
03.04.2017
20:26:15
Я готов в принципе запилить на обеих платформах

Valentin
03.04.2017
20:26:17
Но, еще раз, это должно быть что-то _очевидное_ by design, что-то что сочетается с текущем уровнем имплементации.

Vladimir
03.04.2017
20:26:31
Надо помостреть что там по различиям, конечно
С другое стороны, например в статусе сети забили на различия, и нормально

Valentin
03.04.2017
20:27:15
Как я понял, Владимир, твоя (ваша) задача сущесвенно уже и требует "более умной" низкоуровневой сетевой библиотеки.

Vladimir
03.04.2017
20:27:45
Ну с одной стороны, да, с другой стороны просто добавить в ошибки код наверно будет уже достаточно

Valentin
03.04.2017
20:27:53
(Я не очень знаком со всем этим, но легко допускаю что в текущей реализации есть "уйма места для улучшений".)

Google

Vladimir
03.04.2017
20:27:58
Но проблема в том что это уже расширение веб-апи

Valentin
03.04.2017
20:28:26
Да, это реально проблема.

Vladimir
03.04.2017
20:28:31
В общем моя идея в том чтобы в XHR и fetch в ошибки добавить код ошибки
Или сделать функцию getNetworkErrorCode(error)
Так почище с точки зрения совместимости

Valentin
03.04.2017
20:29:19
Я не могу обещать что мои коллеги заапрувят это, ибо очень важно правильный баланс API и фич.

Vladimir
03.04.2017
20:29:53
Ну я в принципе понимаю, что это может идти вразрез с концепцией
Но мне кажется все таки для мобильных приложений это важно

Denis
03.04.2017
20:30:44
Андроидный OkHttp передает вам привет

Vladimir
03.04.2017
20:31:14

Valentin
03.04.2017
20:31:16
Т.е. еще раз, как мне кажется, твоя (мы на ты?..) проблема должна решаться через отдельную сетевую библиотеку с особым, магически-широким API. Я не большой специалист в этом.

Denis
03.04.2017
20:31:24

Vladimir
03.04.2017
20:32:01

Valentin
03.04.2017
20:32:06
Т.е. например можно решить проблему так: взять опенсорс-реализацию HTTP протокола какую-нибудь и полностью обернуть ее в либу для iOS и Android и использовать "как есть". Будет мощь + совместимость.

Vladimir
03.04.2017
20:32:10
Это единственное чего реально сходу нехватает

Valentin
03.04.2017
20:33:53
Я боюсь, это плохой аргумент. :( Фактически это твоя текущая потребность, завтра будет другая. А API должен оставаться простым для всех.

Vladimir
03.04.2017
20:34:35
Ну вот это я лично не понимаю. Мне кажется это всем важно, и вообще фундаментальная вещь - уметь интерпретировать ошибки
Без этого ни ретрай сделать нельзя, не сообщение адекватное вывести

Denis
03.04.2017
20:35:29

Vladimir
03.04.2017
20:35:50
Не вижу, там есть свои классы эксепшнов?

Google

Denis
03.04.2017
20:36:35

Vladimir
03.04.2017
20:37:27
Меня конкретно интересует, какие там экспешны кидаются, какие ситуации можно различать

Denis
03.04.2017
20:37:43
Мы сейчас про андроид?)

Vladimir
03.04.2017
20:37:57
Ну вот прямо сейчас - да

Denis
03.04.2017
20:38:05
на изи

Vladimir
03.04.2017
20:38:55
Я так понял там IOException только на все?

Denis
03.04.2017
20:39:17
Его вполне хватает
Описалово там нормальное
Один фиг я ерез ретрофит все гоняю

Vladimir
03.04.2017
20:39:40
Ну программно то есть не очень весело
Нужно завязываться на сообщение

Denis
03.04.2017
20:40:15
Вот сейчас даже проект пну

Vladimir
03.04.2017
20:41:33
@shergin в общем я issue создам, пусть будет

Valentin
03.04.2017
20:42:45
Всегда имеет смысл создать ишшью! Честно говоря, я в этом (нетворкинг в RN) не большой копенгаген, я больше про UI.

Vladimir
03.04.2017
20:43:33
Просто может пнешь кого надо, а то не знаю как там у вас на issue отвечают
В facebook/flow можно полгода ждать, и ничего не произойдет
Запилил: https://github.com/facebook/react-native/issues/13277

Alexander
03.04.2017
20:59:02
лайкаем?)

Valentin
03.04.2017
20:59:48
Мы очень трепетно относитмся со всем issue, но не всегда можем быстро отвечать. Да, иногда все очень "долго", но это не потому что мы ленивые, а потому что большинство команда в Фейсбуке очень маленькие и... "сосредоточенные". К примеру, основная команда RN (только те, кто работает только на RN) всего 8 человек.

Denis
03.04.2017
21:01:06

Google

Alexander
03.04.2017
21:06:03
@shergin а не планируете создать список популярных (и главное активных либ), чтобы было проще найти что-то стоющее (было б круто если б они апрувились и отсеивались старые), так как сейчас появляется много либ с приставкой react-native в NPM-е

Valentin
03.04.2017
21:10:19


Алексей
03.04.2017
21:41:37
@shergin а есть где почитать про ваши маленькие команды, Agile, continuos delivery и ваш тулсет для этого?) я читал paper-ы от fb, но прикольно было бы больше с практической стороны узнать)

Valentin
03.04.2017
21:46:40

Play
04.04.2017
01:19:55
C акшинами вроде как разобрался. Как мне в редюсере вызвать функцию play() у TABLA
import Sound from 'react-native-sound'
const S = Sound.MAIN_BUNDLE
const TABLA = new Sound('TABLA.wav', S)
const INITIAL_STATE = {
track: TABLA
}
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case 'PLAY_BTN':
console.log('PLAY_BTN action!')
state = { ...state, ? }
break;
case 'STOP_BTN':
console.log('STOP_BTN action!')
state = { ...state, ? }
break;
}
return state
}

Dmitry
04.04.2017
01:25:55
для начала, нельзя делать это в редьюсере, там д.б. только чистые ф-ции для изменения стейта. Вызывай в миддлваре
или в компоненте-обертке для Sound, по изменению пропсов... я бы наверное завернул звук именно в компонент
необязательно чтоб он был HOC или даже что-то рендерил

Play
04.04.2017
01:46:55

Dmitry
04.04.2017
01:50:50
С рандомом интересно.Либо рандомайзи в action creator, либо райндомайзи в редьюсере, но только псевдорандомом по переданному в него случайному seed. Т.к. редьюсер должен оставаться чистой ф-цией
Мидлвары простые, напишите для начала мидлвару логгер чтобы console.log всех экшенов выводила . Например.
Но вообще вывод звука это не сайд эффект. Там нет диспатча других экшенов, нет листенеров и т.п. Думаю правильнее звук компонентом оформить

Play
04.04.2017
02:08:57

Dmitry
04.04.2017
02:12:34
Редакс он лишь связывает кучу компонент единым стейтом и своим циклом по его изменению .... штука крутая, но проблему лага не решит сам по себе

Play
04.04.2017
02:15:52

Dmitry
04.04.2017
02:16:24
Не верю в такое
Рандом такие копейки кушает

Play
04.04.2017
02:17:03
все сорсы здесь https://github.com/playra/raketa/blob/v1/app/main.js
два месяца уже не могу решить задачу(

Dmitry
04.04.2017
02:21:09
Может в анимациях дело? Честно гря не умею пока ещё в натив, с вебом проще с отладкой и профилированием

Google

Play
04.04.2017
02:22:04
Без них тоже тестил

Dmitry
04.04.2017
02:29:37
А этот react-native-sound в принципе может решать эту задачу? (Играть группы без задержек )
Я бы собрал Минимально возможное приложение и локализовывал проблему. Либо либа левая, либо я в GUI потоке неверно Ее готовлю )
пусть опытные нативщики подключатся))) спок ночи

Play
04.04.2017
02:32:15

Dmitry
04.04.2017
02:32:58
Сделай генерацию заранее
Сложи в массив и юзай, точно станет видно что дело не в рандомайзере

Play
04.04.2017
02:33:52

Dmitry
04.04.2017
02:34:43
Да хоть в конструкторе приложения
Задача локализовать источник лага
Делать по уму уже потом можно

Play
04.04.2017
02:35:24
перерандомайз где-то делать надо
Можно этот рандомайз перенести в componentWillMount()?

Dmitry
04.04.2017
02:36:55
Это тоже одноразовая штука обычно
Почему нельзя перерандомайзить по клику на play ?
(Я не очень по коду понимаю суть приложухи)

Play
04.04.2017
02:38:38
так работает) но нужен автопилот, бесконечный радомайз луп)

Dmitry
04.04.2017
02:41:30
Я бы начал с изучения методов профилирования в нативе... временная шкала, где и на что уходит время. Уверен что не в рандомайзе дело. Сорри, я afk

Play
04.04.2017
02:44:23

Mars
04.04.2017
03:34:53

Ilkhom
04.04.2017
05:53:59
ReactNative видимо еще немного поживет. Apple реджектила приложение не из-за него.
https://github.com/facebook/react-native/issues/13011#issuecomment-291397943
#reactnative