
Кита
10.09.2017
11:59:07
Вопрос был таким: Что можно использовать в xamarin.forms чтобы соединиться с этим сокетом?
в принципе сокет он и в африке сокет
поэтому берется любая либа которая может в сокетное соединение и устанавливается связь с сервером. Все. Вопрос как раз какая эта либа будет. Написанная под mono или же это обертка над нативными библами

Max
10.09.2017
12:00:10

Google

Иван
10.09.2017
12:16:36

Кита
10.09.2017
13:10:34
это же так просто https://www.nuget.org/packages?q=socket.io

Иван
10.09.2017
15:28:20
Подскажите одну вещь, у меня есть интерфейс в PCL проекте, и на кажлй платформе хочу его реализовать. Затем как мне создать экземпляр класа в PCl проекте? Пример: iBook - интерфейс. В проектах делаю классы Book: IBook. В PCL хочу использовать так: var book = new (?); book.read();
Заранее спасибо за ответы)

Max
10.09.2017
15:46:23

Иван
10.09.2017
15:47:01
Я могу вызвать метод но не понимаю как создать экземпляр

Max
10.09.2017
15:47:06

Иван
10.09.2017
15:47:14
Это я знаю
А как именно создать объект?

Max
10.09.2017
15:47:42

Иван
10.09.2017
15:48:10
Я думал об этом, но вот подумал есть ли еще способы

Max
10.09.2017
15:48:55

Google

Иван
10.09.2017
15:49:57
Если функцией возвращить обект, то ругаеся интерфейс

Max
10.09.2017
15:51:02

Иван
10.09.2017
15:53:16
Я к тому что функйия не может возвращать разные обекты, ведь в каждом.Book и т.д.

Max
10.09.2017
16:23:20

Kirill
10.09.2017
16:50:26

Иван
10.09.2017
16:53:46
Я не могу понять как вернуть это объект, можете дать пример?

Max
10.09.2017
16:54:08

Kirill
10.09.2017
16:55:54
[assembly: Xamarin.Forms.Dependency (typeof (BookService))]
ну и эту строчку перед неймспейсом в BookService не забыть
Обычные методы
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/dependency-service/introduction/

Иван
10.09.2017
16:56:46

Kirill
10.09.2017
16:57:16

Иван
10.09.2017
16:57:37
Спасибо большое, поробую)

Kirill
10.09.2017
16:58:06
DependencyService.Get<IBook?) возвращает реализацию интерфейса на платформе, в частности BookService вернет

Кита
10.09.2017
20:45:52
хех, а замарин то могет)) https://medium.com/@harrycheung/mobile-app-performance-redux-e512be94f976
жаль старые тесты, без React Native

Max
10.09.2017
20:47:11

Кита
10.09.2017
20:50:41
Кстати я когда в прошлый раз скидывал сравнение перфоманса различных IoC никто чет слова не сказал, хотя на старттайм приложения это очень сильно влияет

Ilia
10.09.2017
20:51:21
это такая капля в море

Google

Кита
10.09.2017
20:51:40
одно дело резолвить первый синглтон за 500мс другое дело за 50-80
3-4 синглтона резолвится на старте это уже 2 секунды лишних если он дико медленно создает объекты
Так что на коммерческих проектах я в корне не согласен что это капля в море. На ведре например уйдя с autofac на DryIoc старт первого активити изменился с 4.5 секунд на 2 секунды ровно. Стартует как нативная аппа

Ilia
10.09.2017
20:55:08
я не могу себе представить, как надо написать IoC контейнер, чтобы он резолвил что-то по 500мс //предполагаю, что это инициализация объекта может столько занимать (например, парсинг какого-нибудь xaml и тд), но не сам резолвинг
там же пробежать по метадате и все склеить

Кита
10.09.2017
20:55:53

Ilia
10.09.2017
20:56:30

Кита
10.09.2017
20:57:12
оптимизированно и быстро
ага, счазззззз. как Activator.CreateInstance в IL код компилится и что из себя представляет видел?

Ilia
10.09.2017
20:58:02

Кита
10.09.2017
20:59:40
ну мне то что. посмотри на сравнение перфоманса https://www.youtube.com/watch?v=BNVP9FJXY6A
и на сравнение IoC
я сменил имплементацию и старт стал быстрее. Ничего другого не делал

Ilia
10.09.2017
21:01:28
Every interface is resolved 500.000 times during the benchmark and the time is measured in milliseconds. Each test is executed single threaded and multi threaded.
500к раз
тут нет ни одного резолвинга больше чем 0.25мс
а большинство дает до 300мс на 500к раз на адекватных настройках
поэтому капля в море
http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison

Кита
10.09.2017
21:02:06

Ilia
10.09.2017
21:02:17

Кита
10.09.2017
21:03:59
У нас все создание объектов, всех презентеров, всех сервисов которые определяют первую страницу итд все через IoC идет. На старте просто вызывается
var app = DependencyService.Resolve<IApplication>();
base.OnCreate(savedInstanceState);
app.Init();
Resolve<IApplication>() резолвит внутри себя ещё 5-6 зависимостей. А до этого в классе Application на самом старте приложения до создания активити регистрируются все сервисы, вьюмодели, презентеры и вьюхи. Без этого кода обычный Hello World запускается очень быстро, с autofac медленнее, а если сменить на DryIoC то почти как Hello World грузит

Ilia
10.09.2017
21:04:22
код, не затрагивающий апи системы (IoC именно такой) работает приблизительно одинаково

Кита
10.09.2017
21:04:42
Вообще я никого убеждать тут не собираюсь. Делюсь инфой. Кто захочет - внемлет. На clean architecture банальная смена имплементации резолвера на более быстрый IoC который работает через ILGenerator дал прирост на старте

Kirill
11.09.2017
06:09:29
А как сменить?

Google

Vladislav
11.09.2017
06:53:24
это же вроде встроенный инструмент. как сменил то? оставив прежний DependencyService?

Andriy
11.09.2017
10:08:49
Всем привет)
На native можно как-то вызвать скрин лок для того, что-бы юзер смог ввести пин-код?
Нужно имеено системный скрин лок, а не написать свой
Например, когда аппка защищена паролем и просит ввести пароль

Кита
11.09.2017
10:10:59

Andriy
11.09.2017
10:18:26
Увы, но надо именно скрин лок с пин-кодом, так как от пин-код будет использоваться для шыфровки
И еще вопрос, можно как-то узнать стоит ли вообще защита скрин локом на телефоне?
Именно с кода узнать

Кита
11.09.2017
10:22:36

Ivan
11.09.2017
10:26:54
его вообще может не быть
или по паролю вместо пинкода


Кита
11.09.2017
11:28:22
его вообще может не быть
Я рассказал как выглядит стандарт безопасности у многих аппок. В приложении после логина ты попадаешь на экран с установкой пинкода, пинкод шифруется и записывается в KeyStore, секретный пароль к которому тоже шифруется и обфусцируется, либо пинкод отправляется на сервер, потом когда пользователь заходит в аппку и видит экран ввода пин кода и вводит его - из KeyStore пинкод зачитывается и валидируется либо на сервер идет запрос валиадации введенного пинкода. Все зависит от того как предполагается использовать аппу: в офлайне и онлайне или исключительно в онлайне. Для реализации поля ввода пинкода edit text не рекомендован к использованию. Если же на телефоне есть сканнер отпечатка пальца то вместо пинкода предлагается входить по отпечатку. Вот как раз для того чтобы узнать установлен ли отпечаток и для получения результата со сканнера открытые API есть. Вроде все правила


Ivan
12.09.2017
14:03:00
какой backend посоветуете для реализации модуля мессенджера?

K
12.09.2017
14:03:35
Можно уточнить?

Алексеев
12.09.2017
14:04:42
@korsour https://sendbird.com готовый чат со всеми функциями
Если свое то SignalR

Ivan
12.09.2017
14:05:23
загрузка, получение, хранение данных (текстовая, изображения, войсы). Можно и обычную СУБД использовать, но, возможно, есть решения красивее
почитаю про SignalR, спасибо за совет

Max
12.09.2017
14:10:31
Приветствуем в XamDev)
Здесь вы можете найти исчерпывающие ответы на большинство вопросов

Максуджон
12.09.2017
14:11:06
Добрый день

Ivan
12.09.2017
14:20:35
для SignalR, как я понимаю, нужно поднять свой сервер?

Алексеев
12.09.2017
14:29:52

Google

Ivan
12.09.2017
14:32:11
сервисы Microsoft Azure сгодятся? Насколько знаю, там даётся $200 на использование их сервисов. На сколько примерно хватит этого по времени, чтобы держать весь бэкенд локального мессенджера?
Не работал с Azure ещё, поэтому пока что смутно представляю всё это

Max
12.09.2017
14:32:56
Большие файлы можно в блобе держать (там чет в районе 1к рублей за 1 Тб, могу ошибаться)