Добро пожаловать в канал 'Библиотека мобильного разработчика'! Если вы занимаетесь разработкой для платформ Android, iOS, используете Swift, Retrofit, Moshi, или интересуетесь Chuck, то этот канал - для вас.
Здесь вы найдете все самое полезное и актуальное, что необходимо мобильному разработчику. Мы собираем для вас лучшие материалы, статьи, руководства и ресурсы, чтобы помочь вам улучшить навыки и быть в курсе последних тенденций в мобильной разработке.
Присоединяйтесь к нам, чтобы узнавать первыми о новых технологиях, решениях, и советах от опытных разработчиков. Ссылка на список каналов доступна здесь: https://t.me/proglibrary/9197
Хотите учиться у нас? Посетите наш сайт: https://proglib.io/w/330353e8
Мы ценим ваше мнение! Обратная связь доступна через бота: @proglibrary_feedback_bot. И для рекламных вопросов обращайтесь сюда: @proglib_adv. Также вы можете узнать о возможностях рекламы в нашем канале по ссылке: @proglib_advertising
Присоединяйтесь к 'Библиотеке мобильного разработчика' и станьте частью активного сообщества мобильных разработчиков! Узнавайте, обучайтесь, и делитесь опытом с нами. Добро пожаловать в мир мобильной разработки с 'mobileproglib'!
31 Jan, 18:47
31 Jan, 08:13
30 Jan, 18:07
30 Jan, 11:02
30 Jan, 09:01
30 Jan, 08:58
29 Jan, 18:05
nil
или нет. Если нет, то создается временная константа realName
и ей присваивается значение name
.var name: String? = «Charles»
if let realName = name {
print (realName)
}
Charles
29 Jan, 10:14
28 Jan, 18:13
28 Jan, 11:00
28 Jan, 08:31
27 Jan, 20:02
27 Jan, 18:06
22 Jan, 07:15
22 Jan, 06:02
21 Jan, 18:02
21 Jan, 11:01
21 Jan, 07:39
20 Jan, 18:06
20 Jan, 07:08
idea.active
, что позволит вам проверять переменные корутин в IntelliJ IDEA и Android Studio без ущерба для производительности.19 Jan, 18:30
var
или val
. Свойства, объявленные с var
, могут быть изменены после их инициализации, а свойства, объявленные с val
, только для чтения.class Person {
var name: String = «»
val age: Int = 0
}
var name: String = «»
get() = field.toUpperCase()set(value) {
field = «Name: $value»
}
name
имеет тип String
и начальное значение пустой строки. Геттер возвращает значение свойства, преобразованное к верхнему регистру. Сеттер устанавливает значение свойства с добавлением префикса «Name: "
перед переданным значением. Слово field
используется для обращения к текущему значению свойства.val
, генерируется get-метод, а для свойства, объявленного с var
— и get, и set методы.19 Jan, 08:00
18 Jan, 18:09
18 Jan, 07:10
17 Jan, 18:13
17 Jan, 08:55
16 Jan, 18:04
16 Jan, 11:04
16 Jan, 07:15
16 Jan, 06:02
15 Jan, 18:11
enum Direction {
case North
case East
case South
case West
}
Direction.North
, вместо того чтобы использовать мистическую строку «North»
(которая легко может быть неправильно написана и вызвать раздражающие ошибки).15 Jan, 07:06
14 Jan, 18:20
14 Jan, 13:00
14 Jan, 09:35
13 Jan, 20:02
13 Jan, 18:15
13 Jan, 07:07
12 Jan, 18:09
final
для того, чтобы избежать случайного наследования и переопределения методов. Это сделано для повышения безопасности кода и уменьшения сложности программы, так как ограничение наследования помогает избежать ошибок, связанных с неожиданным изменением поведения унаследованных методов.12 Jan, 07:06
11 Jan, 18:49
11 Jan, 07:34
10 Jan, 18:05
10 Jan, 07:12
09 Jan, 18:05
09 Jan, 07:07
08 Jan, 18:08
lazy var tallest: Person? = {
return people.max(by: { $0.height < $1.height })
}()
08 Jan, 08:25
07 Jan, 18:05
07 Jan, 13:55
07 Jan, 07:10
06 Jan, 18:02
06 Jan, 07:09
05 Jan, 18:05
Unit
в Kotlin выполняет ту же функцию, что и void
в Java.Unit
:fun knockKnock() {
println(«Who’s there?»)
} // то же самое, но с указанным типом Unitfun
knockKnock(): Unit = println(«Who’s there?»)
05 Jan, 07:10
04 Jan, 18:10
04 Jan, 07:07
03 Jan, 18:03
03 Jan, 07:07
02 Jan, 18:07
02 Jan, 07:10
01 Jan, 18:03
deinit
.number
обратно в 0 при деаллокации экземпляра Example
.var number = 15
class Example {
init() {
number *= 10
}
deinit {
number = 0
}
}
01 Jan, 07:06
31 Dec, 18:03
31 Dec, 07:08
30 Dec, 20:03
30 Dec, 18:16
30 Dec, 07:06
24 Dec, 07:05
23 Dec, 18:05
23 Dec, 07:05
22 Dec, 18:03
nil
.Optional chaining
работает, как следует из названия, путем объединения одного или нескольких необязательных значений с помощью оператора со знаком вопроса ?
, например, так:something?.someValue?.someMethod()
nil
встречается в любой точке вышеприведенной цепочки, приложение не крашится — вместо этого возвращается nil
.22 Dec, 07:07
22 Dec, 06:01
21 Dec, 18:10
21 Dec, 09:00
20 Dec, 18:07
20 Dec, 07:08
19 Dec, 18:07
19 Dec, 11:10
19 Dec, 07:10
18 Dec, 18:10
Nothing
является типом, который полезен при объявлении функции, которая ничего не возвращает и не завершается.exception
или в которой запущен бесконечный цикл;TODO() — public inline fun TODO(): Nothing = throw NotImplementedError();
fail
, которая выдает исключение с определенным сообщением:fun fail(message: String): Nothing {
throw IllegalStateException(message)
}
18 Dec, 07:09
17 Dec, 18:09
17 Dec, 11:10
17 Dec, 07:07
swift_conformsToProtocol
из Swift Runtime.swift_conformsToProtocol
: вызовы as?/as! SomeProtocol
, String(describing:)
и дженерик-типы с type-generic-constraint.16 Dec, 20:03
16 Dec, 18:12
06 Dec, 18:06
06 Dec, 07:09
05 Dec, 18:06
05 Dec, 11:02
05 Dec, 07:07
04 Dec, 18:14
04 Dec, 07:04
03 Dec, 18:01
03 Dec, 11:00
03 Dec, 07:06
searchSuggestions(_:)
в SwiftUI — это мощная функция, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием недавних поисковых запросов он создаёт интуитивно понятный интерфейс, который помогает пользователям быстро найти то, что они ищут, и легко вернуться к ранее просмотренным элементам.02 Dec, 20:03
02 Dec, 18:18
02 Dec, 07:06
01 Dec, 18:09
01 Dec, 07:10
30 Nov, 18:06
30 Nov, 07:40
29 Nov, 19:04
29 Nov, 15:00
29 Nov, 07:12
25 Nov, 07:10
24 Nov, 18:10
final
. Например:final class Animal {
let name = «I’m a furry animal»
}
24 Nov, 12:01
24 Nov, 07:08
23 Nov, 18:08
23 Nov, 07:08
22 Nov, 18:04
22 Nov, 11:00
22 Nov, 06:00
21 Nov, 18:07
21 Nov, 11:01
21 Nov, 07:06
20 Nov, 18:06
20 Nov, 12:01
20 Nov, 07:10
19 Nov, 18:01
19 Nov, 18:01
19 Nov, 11:03
19 Nov, 07:13
16 Nov, 07:09
16 Nov, 06:02
15 Nov, 18:05
15 Nov, 07:10
14 Nov, 18:08
14 Nov, 11:04
14 Nov, 07:07
13 Nov, 18:07
13 Nov, 07:05
12 Nov, 18:01
12 Nov, 18:01
12 Nov, 11:00
12 Nov, 07:05
11 Nov, 18:07
11 Nov, 07:08
10 Nov, 19:50
10 Nov, 07:08
09 Nov, 18:07
09 Nov, 07:10
08 Nov, 18:08
08 Nov, 07:09
07 Nov, 18:12
07 Nov, 15:01
07 Nov, 11:08
07 Nov, 07:08
06 Nov, 18:04
06 Nov, 07:10
05 Nov, 18:18
05 Nov, 11:06
05 Nov, 10:06
05 Nov, 07:16
04 Nov, 20:02
04 Nov, 18:14
04 Nov, 07:06
03 Nov, 18:20
03 Nov, 07:16
02 Nov, 18:08
02 Nov, 07:10
01 Nov, 18:22
01 Nov, 07:01
31 Oct, 18:18
31 Oct, 11:08
31 Oct, 07:12
30 Oct, 18:06
29 Oct, 18:08
29 Oct, 14:14
29 Oct, 09:04
28 Oct, 18:50
28 Oct, 10:00
27 Oct, 18:14
27 Oct, 09:49
26 Oct, 11:06
25 Oct, 18:05
25 Oct, 09:19
24 Oct, 15:00
24 Oct, 07:15
23 Oct, 18:10
23 Oct, 12:02
23 Oct, 09:03
22 Oct, 18:12
22 Oct, 12:41
22 Oct, 06:00
21 Oct, 20:03
21 Oct, 18:09
21 Oct, 12:02
21 Oct, 09:07
20 Oct, 10:40
19 Oct, 18:08
19 Oct, 11:13
18 Oct, 15:01
17 Oct, 18:17
17 Oct, 11:28
16 Oct, 09:28
16 Oct, 06:03
15 Oct, 10:43
14 Oct, 18:06
14 Oct, 07:23
13 Oct, 09:47
12 Oct, 18:14
12 Oct, 14:41
11 Oct, 18:06
11 Oct, 07:24