Несколько книг для начинающего и продолжающего разработчика под Android
В прошлом году я входил в миры Android. Помимо изучения исходников, документации, статей, блогов, аудио- и видео-материалов по теме, читал книги. Спешу поделиться читательским опытом.
Под катом небольшой обзор восьми книг. Темы следующие:
- RxJava
- Потоки в Android
- Разработка под Android на Java
- Kotlin. Обзор языка
- Kotlin. Практика
- Kotlin. Обзор языка с уклоном на Android
- Разработка под Android на Kotlin
- Rx в Kotlin
Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications. By Tomasz Nurkiewicz, Ben Christensen. O’Reilly Media; 1 edition October 27, 2016; 372 pages;
ISBN-13: 978-1491931653
Но, даже если уверены в своих знаниях Rx, книга наверняка откроет вам что-то новое. Тем более, если вы только начинаете изучать тему. Если это так, то можно дать вам еще один совет: закрепляйте на практике пройденные темы и изучайте open-source проекты. Так вы быстрее освоите Rx.
Недостатком книги можно считать тот факт, что она имеет в виду версию RxJava 1.1.6. Во второй версии RxJava претерпела некоторые существенные изменения (см. статьи на Хабре Исследуем RxJava 2 для Android и ReactiveX 2.0 с примерами, а также полный список изменений на wiki проекта What’s different in 2.0), и поэтому некоторые места в книге устарели. Однако эти изменения вытекали из общей логики развития RxJava и в книге о них идет речь. Думаю, второе издание должно поставить все на свои места, хотя к этому моменту, возможно, появиться RxJava 3.
Еще один небольшой недостаток, на мой взгляд: книга недостаточно развернуто объясняет теорию реактивного программирования и начинающему разработчику может быть нелегко войти в тему. Хорошее место для этой цели первая глава, но она (с учетом отличий от RxJava 2) выглядит запутанной.
Непосредственно работе RxJava в Android посвящена восьмая глава. Много прекрасно разобранных практических примеров. Но опять же, на сегодня охват возможностей Rx в Android неполон.
В целом, ни один из недостатков не перечеркивает достоинств книги. Она может быть рекомендована к чтению как начинающими разработчиками, так и опытными девелоперами.
Кроме прочего, всегда интересно посмотреть, каких на этот раз животных поместило на обложку издательство O’Reilly.
Есть перевод на русский:
Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений. ДМК Пресс, 2017 год, 358 стр.
ISBN: 978-5-97060-496-0
Efficient Android Threading: Asynchronous Processing Techniques for Android Applications. By Anders Goransson. O’Reilly Media; 1 edition June 13, 2014; 280 pages;
ISBN-13: 978-1449364137
Из минусов, на мой взгляд, можно назвать то, что в книге не слишком подробно объясняется взаимодействие между процессами (фрейворк Binder, AIDL), как с теоретической, так и с практической стороны. И, поскольку, книга написана до второй половины 2014 года, мы не найдем в ней то, что появилось с момента выхода Android Lollipop 5.0. Например, можно вспомнить планирование задач с использованием JobScheduler, Doze Mode, ограничения на запуск Service , которые мы получили в Android Oreo 8.0… etc.
То, что есть недостатки, можно отнести скорее к лаконичному стилю изложения (книга обложка перевода
Android Programming: The Big Nerd Ranch Guide. By Bill Phillips, Chris Stewart & Kristin Marsicano. Big Nerd Ranch Guides; 3 edition February 9, 2017; 624 pages;
ISBN-13: 978-0134706054
Из минусов я бы назвал неравномерную сложность, довольно большой объем. Думаю, если вы начнете проходить книгу от корки до корки, то для этого вам понадобится много терпения. Не факт, что такой способ не замедлит ваше развитие, как разработчика. Я бы рекомендовал использовать этот фолиант скорее как справочник по интересующей вас теме (теорию быстрее узнать, например, на каком-либо онлайн-курсе), а для скорейшего вхождения в тему Android-разработки — писать свои проекты и изучать, как пишут код другие разработчики.
Есть перевод на русский:
Филлипс Б., Стюарт К., Марсикано К.Android. Программирование для профессионалов. 3-е издание / пер. с англ. — СПб.: Издательский дом «Питер», 2017 год, 688 стр.
ISBN: 978-5-4461-0413-0
Kotlin in Action. By Dmitry Jemerov & Svetlana Isakova. Manning Publications; 1 edition February 19, 2017; 360 pages;
ISBN-13: 978-1617293290
Книга удачно разделена на главы, параграфы и разделы. Материал организован от простого к сложному. Книга предполагает, что читатель знает Java на достаточном уровне, поскольку язык Kotlin во многом опирается на Java. Если вы Android-разработчик, который пишет, или которому предстоит писать на Kotlin, тогда эта книга для вас. Но если вы начинающий девелопер и недостаточно сильны в Java, вы также можете читать эту книгу. Вам просто придется чуть больше поработать над ней. Даже теория (например, теория лямбда-выражений или обобщенных типов) объяснена в книге очень хорошо. И это здорово поможет войти в тему, если вы делаете первые шаги в программировании.
Книга имеет в виду Kotlin 1.0, поэтому, например, в ней отсутствует описание корутин (coroutine).
Книга не привязана к конкретной предметной области (например, Kotlin в Android), и может использоваться как отличное введение для всех, кто изучает Kotlin.
Есть перевод на русский:
Исакова С., Жемеров Д. Kotlin в действии / пер. с англ. Киселев А.Н. — М.: ДМК-Пресс, октябрь 2017 г., 402 стр.
ISBN: 978-5-97060-497-7
Kotlin for Android Developers: Learn Kotlin the easy way while developing an Android App By Antonio Leiva. CreateSpace Independent Publishing Platform; 1 edition March 21, 2016; 212 pages;
ISBN-13: 978-1530075614
Минусы: материал в книге довольно запутан, автор часто ссылается на репозиторий в GitHub, но при этом не всегда можно понять какую ветку он имеет в виду. Впечатление, что написанное в книге, лучше подходит для формата блога или серии статей о разработке приложения на Kotlin.
В книге можно найти пару-тройку интересных приемов программирования на Kotlin под Android.
Android Development with Kotlin By Marcin Moskala & Igor Wojda. Packt Publishing — ebooks Account, September 6, 2017; 440 pages;
ISBN-13: 978-1787123687
Главный минус, что эта книга никак не является введением в Android-разработку на Kotlin, так что название может путать читателя. Англоязычные читатели жалуются на плохой английский, но я не заметил, конечно.
Саму книгу не дочитал (книги «Kotlin in action» вполне хватает для введения в язык), поэтому не могу судить о ней с полной уверенностью.
В электронной версии книгу очень удобно читать на сайте издательства с помощью специальной читалки Mapt.
У одного из авторов есть занятные статьи: например, о кроссплатформенности на Kotlin.
Mastering Android Development with Kotlin: Deep dive into the world of Android to create robust applications with Kotlin By Milos Vasic. Packt Publishing — ebooks Account, November 8, 2017; 378 pages;
ISBN-13: 978-1788473699
Мне кажется, что книга не слишком глубоко говорит о разработке на Android, но объясняет нужные вещи. Например, работу с Git или использование библиотеки Retrofit. Что касается использования языка Kotlin для обучения разработке под Android, то сам автор предупреждает, что Kotlin лишь дополнительный инструмент для Android, и Java, как и С++ (для Native), еще никто не отменял.
Как я уже говорил, электронные книги данного издательства удобно читать, благодаря встроенной читалке Mapt.
Reactive Programming in Kotlin: Design and build non-blocking, asynchronous Kotlin applications with RXKotlin, Reactor-Kotlin, Android, and Spring By Rivu Chakraborty. Packt Publishing — ebooks Account, December 5, 2017; 322 pages;
ISBN-13: 978-1788473026
Об RxKotlin в Android идет речь в последней главе. Читатель знакомится с возможностями RxKotlin в Android на примере небольшого приложения, в котором, кроме прочего, используется Retrofit вместе с адаптером от Джейка Вортона.
Книга хорошо оформлена и разбита на главы и разделы, читается быстро. Может быть рекомендована, в дополнение к первой книге об Rx в этом обзоре, особенно для девелоперов изучающих Kotlin. Предполагает знакомство с Kotlin на базовом уровне.
Остальные книги о Kotlin см. на этой странице оф. сайта языка и на сайте издательства Packt Publishing.
Источник
Android в„ў Notes for Professionals book
Androidв„ў Notes for Professionals book
If you found this free Androidв„ў book useful,
then please share it ❤рџЉ
Chapters
- Getting started with Android
- Android Studio
- Instant Run in Android Studio
- TextView
- AutoCompleteTextView
- Autosizing TextViews
- ListView
- Layouts
- ConstraintLayout
- TextInputLayout
- CoordinatorLayout and Behaviors
- TabLayout
- ViewPager
- CardView
- NavigationView
- RecyclerView
- RecyclerView Decorations
- RecyclerView onClickListeners
- RecyclerView and LayoutManagers
- Pagination in RecyclerView
- ImageView
- VideoView
- Optimized VideoView
- WebView
- SearchView
- BottomNavigationView
- Canvas drawing using SurfaceView
- Creating Custom Views
- Getting Calculated View Dimensions
- Adding a FuseView to an Android Project
- Supporting Screens With Different Resolutions, Sizes
- ViewFlipper
- Design Patterns
- Activity
- Activity Recognition
- Split Screen / Multi-Screen Activities
- Material Design
- Resources
- Data Binding Library
- SharedPreferences
- Intent
- Fragments
- Button
- Emulator
- Service
- The Manifest File
- Gradle for Android
- FileIO with Android
- FileProvider
- Storing Files in Internal & External Storage
- Zip file in android
- Unzip File in Android
- Camera and Gallery
- Camera 2 API
- Fingerprint API in android
- Bluetooth and Bluetooth LE API
- Runtime Permissions in API-23 +
- Android Places API
- Android NDK
- DayNight Theme (AppCompat v23.2 / API 14+)
- Glide
- Dialog
- Enhancing Alert Dialogs
- Animated AlertDialog Box
- GreenDAO
- Tools Attributes
- Formatting Strings
- SpannableString
- Notifications
- AlarmManager
- Handler
- BroadcastReceiver
- UI Lifecycle
- HttpURLConnection
- Callback URL
- Snackbar
- Widgets
- Toast
- Create Singleton Class for Toast Message
- Interfaces
- Animators
- Location
- Theme, Style, Attribute
- MediaPlayer
- Android Sound and Media
- MediaSession
- MediaStore
- Multidex and the Dex Method Limit
- Data Synchronization with Sync Adapter
- PorterDuff Mode
- Menu
- Picasso
- RoboGuice
- ACRA
- Parcelable
- Retrofit2
- ButterKnife
- Volley
- Date and Time Pickers
- Localized Date/Time in Android
- Time Utils
- In-app Billing
- FloatingActionButton
- Touch Events
- Handling touch and motion events
- Detect Shake Event in Android
- Hardware Button Events/Intents (PTT, LWP, etc.)
- GreenRobot EventBus
- Otto Event Bus
- Vibration
- ContentProvider
- Dagger 2
- Realm
- Android Versions
- Wi-Fi Connections
- SensorManager
- ProgressBar
- Custom Fonts
- Getting system font names and using the fonts
- Text to Speech(TTS)
- Spinner
- Data Encryption/Decryption
- OkHttp
- Handling Deep Links
- Crash Reporting Tools
- Check Internet Connectivity
- Creating your own libraries for Android applications
- Device Display Metrics
- Building Backwards Compatible Apps
- Loader
- ProGuard — Obfuscating and Shrinking your code
- Typedef Annotations: @IntDef, @StringDef
- Capturing Screenshots
- MVP Architecture
- Orientation Changes
- Xposed
- PackageManager
- Gesture Detection
- Doze Mode
- Colors
- Keyboard
- RenderScript
- Fresco
- Swipe to Refresh
- Creating Splash screen
- IntentService
- Implicit Intents
- Publish to Play Store
- Universal Image Loader
- Image Compression
- 9-Patch Images
- Email Validation
- Bottom Sheets
- EditText
- Speech to Text Conversion
- Installing apps with ADB
- Count Down Timer
- Barcode and QR code reading
- Android PayPal Gateway Integration
- Drawables
- TransitionDrawable
- Vector Drawables
- VectorDrawable and AnimatedVectorDrawable
- Port Mapping using Cling library in Android
- Creating Overlay (always-on-top) Windows
- ExoPlayer
- XMPP register login and chat simple example
- Android Authenticator
- AudioManager
- AudioTrack
- Job Scheduling
- Accounts and AccountManager
- Integrate OpenCV into Android Studio
- MVVM (Architecture)
- ORMLite in android
- Retrofit2 with RxJava
- ShortcutManager
- LruCache
- Jenkins CI setup for Android Projects
- fastlane
- Define step value (increment) for custom RangeSeekBar
- Getting started with OpenGL ES 2.0+
- Check Data Connection
- Java on Android
- Android Java Native Interface (JNI)
- Notification Channel Android O
- Robolectric
- Moshi
- Strict Mode Policy : A tool to catch the bug in the Compile Time.
- Internationalization and localization (I18N and L10N)
- Fast way to setup Retrolambda on an android project.
- How to use SparseArray
- Shared Element Transitions
- Android Things
- Library Dagger 2: Dependency Injection in Applications
- JCodec
- Formatting phone numbers with pattern.
- Paint
- What is ProGuard? What is use in Android?
- Create Android Custom ROMs
- Genymotion for android
- ConstraintSet
- CleverTap
- Publish a library to Maven Repositories
- adb shell
- Ping ICMP
- AIDL
- Android game development
- Android programming with Kotlin
- Android-x86 in VirtualBox
- Leakcanary
- Okio
- Bluetooth Low Energy
- Looper
- Annotation Processor
- SyncAdapter with periodically do sync of data
- Fastjson
- JSON in Android with org.json
- Gson
- Android Architecture Components
- Jackson
- Smartcard
- Security
- How to store passwords securely
- Secure SharedPreferences
- Secure SharedPreferences
- SQLite
- Accessing SQLite databases using the ContentValues class
- Firebase
- Firebase Cloud Messaging
- Firebase Realtime DataBase
- Firebase App Indexing
- Firebase Crash Reporting
- Twitter APIs
- Youtube-API
- Integrate Google Sign In
- Google signin integration on android
- Google Awareness APIs
- Google Maps API v2 for Android
- Google Drive API
- Displaying Google Ads
- AdMob
- Google Play Store
- Sign your Android App for Release
- TensorFlow
- Android Vk Sdk
- Project SDK versions
- Facebook SDK for Android
- Thread
- AsyncTask
- Testing UI with Espresso
- Writing UI tests — Android
- Unit testing in Android with JUnit
- Inter-app UI testing with UIAutomator
- Lint Warnings
- Performance Optimization
- Android Kernel Optimization
- Memory Leaks
- Enhancing Android Performance Using Icon Fonts
- Bitmap Cache
- Loading Bitmaps Effectively
- Exceptions
- Logging and using Logcat
- ADB (Android Debug Bridge)
- Localization with resources in Android
- Convert vietnamese string to english string Android
Example book pages
What people are saying about this Androidв„ў Notes for Professionals book
This is amazing. I just downloaded the Android book, and it’s actually pretty good.
It’s really very awesome books for beginners. Thank you
Great buddy. Helpful for all developers! This book covers almost all topics.
Thank you so much for taking the time to make this, really appreciate it !
Awesome tutorial. Apply many techiniques for Dev Android. Thank you!
One of the best resources about Android programming I’ve ever seen and it’s totally free. Thanks!
The Androidв„ў Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified
Book created for educational purposes and is not affiliated with Androidв„ў group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners
Источник