Head First Android Development. 3rd Edition
- Autorzy:
- Dawn Griffiths, David Griffiths
- Promocja Przejdź
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 932
- Dostępne formaty:
-
ePubMobi
Opis
książki
:
Head First Android Development. 3rd Edition
What will you learn from this book?
If you have an idea for a killer Android app, this fully revised and updated edition will get you up and running in a jiffy. You'll go beyond syntax and how-to manuals and learn how to think like a great Android developer. This hands-on book teaches you everything from designing user interfaces to building multi-screen apps that persist data in a database. It covers the latest features of Android Jetpack, including Jetpack Compose. It's like having an experienced Android developer sitting right next to you! If you have some Kotlin know-how, you're ready to get started.
Why does this book look so different?
Based on the latest research in cognitive science and learning theory, Head First Android Development uses a visually rich format to engage your mind rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts? This multisensory learning experience is designed for the way your brain really works.
Wybrane bestsellery
-
Promocja Promocja 2za1
Książka Aplikacje Mobilne dla studenta i technika programisty to jest przeznaczona dla każdego kto chce zapoznać się z tematem tworzenia aplikacji mobilnych dla systemu Android. W pierwszej części książki czytelnik zapoznaje się z tajnikami Języka Java. Dogłębnie zapoznaje się z tematyką: programowania obiektowego, oraz współbieżnego. Poruszane są(30,90 zł najniższa cena z 30 dni)
48.78 zł
74.00 zł (-34%) -
Promocja 2za1
Developers with prior experience can leverage the latest modern Android development libraries to build exceptional Android apps. This book discusses crucial factors to consider when developing Android applications and how to maintain them better.- pkt
W przygotowaniu
Powiadom mnie, gdy książka będzie dostępna -
This book will equip you to create high-quality, visually appealing Android apps from scratch with Kotlin. You'll discover a wide range of real-world development challenges faced by developers and explore various techniques to overcome them.
- pkt
How to Build Android Applications with Kotlin. A hands-on guide to developing, testing, and publishing production-grade Android 15 apps - Third Edition
Alex Forrester, Eran Boudjnah, Alexandru Dumbravan, Jomar Tigcal
Niedostępna
-
Nowość Promocja Promocja 2za1
Learn how to create powerful apps for multiple platforms with Flutter and Dart Key Features Design visually striking UI with engaging animations using the Dynamic UI Capabilities of Flutter. Understand why Dart is an ideal choice for cross-platform app development. Learn how to secure, test, deploy and publish your Flutter apps. Description Flutt- ePub + Mobi pkt
(76,49 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Nowość Promocja Promocja 2za1
A practical guide to cross-platform app development with .NET MAUI and C# Key Features Get familiar with .NET MAUI, its associated libraries, and popular design patterns used in cross-platform app development. Learn how to design and implement visually appealing and interactive user interfaces in your .NET MAUI app. Deep dive into the process of c- ePub + Mobi pkt
(76,49 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Nowość Promocja Promocja 2za1
The Ultimate Flutter Handbook for Aspiring App Developers Key Features Get in-depth knowledge about the process of building apps using Flutter. A practical guide that provides step-by-step instructions for landing a job as an app developer. Acquire all the necessary knowledge and skills to increase your chances of being hired as an app developer.- ePub + Mobi pkt
(76,49 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Nowość Promocja Promocja 2za1
Learn the basics of Kotlin and build your first Android app Key Features Build real-world apps from scratch with UI and coding. Learn about the latest trends in Android development, including modern architecture patterns, UI design principles, and the Jetpack suite of libraries. Discover how Kotlin can make your Android development more efficient- ePub + Mobi pkt
(76,49 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Nowość Promocja Promocja 2za1
Learn iOS app development from scratch and build your dream app Key Features Experience the cutting-edge capabilities of Xcode 15 and Swift 5.9 with this enhanced edition, unraveling the latest features. Embark on an exciting journey into the world of iOS programming while enjoying the process of building your very own iOS apps. Uncover the exciti- ePub + Mobi pkt
(76,49 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Promocja Promocja 2za1
Description Kotlin, a modern and expressive language, has revolutionized Android app development. As the app complexity grows, building scalable and maintainable Android apps becomes crucial. This book is a complete guide to modern Android app development using Kotlin. It covers key concepts like clean architecture and dependency injection for buil- ePub + Mobi pkt
(38,90 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%) -
Promocja Promocja 2za1
Learn how to use C# 11 to build apps for any platform, from the ground up Key Features Discover the latest C# 11 features and improvements. Master C# application development in Visual Studio 2022 with engaging and relatable examples. Learn how to test and deploy C# applications with ease. Description C# 11 is the latest version of C#, a popular p- ePub + Mobi pkt
(38,90 zł najniższa cena z 30 dni)
80.91 zł
89.90 zł (-10%)
O autorach książki
Dawn Griffiths jest znakomitą i bardzo doświadczoną programistką oraz autorką wielu książek z serii Rusz głową!. Wraz z mężem Davidem opracowała także animowany kurs wideo The Agile Sketchpad, stanowiący próbę uczenia kluczowych pojęć i technik w sposób zapewniający aktywną pracę mózgu i utrzymanie zaangażowania. Jej pasje to tai chi, bieganie i gotowanie.
David Griffiths jest trenerem Agile, programistą i pracownikiem warsztatu. W wieku 15 lat napisał implementację języka LOGO. Napisał kilka innych książek z serii Rusz głową!. Jego ulubione hobby to spędzanie czasu z ukochaną żoną Dawn.
Dawn Griffiths, David Griffiths - pozostałe książki
-
Promocja Promocja 2za1
What will you learn from this book?Head First Kotlin is a complete introduction to coding in Kotlin. This hands-on book helps you learn the Kotlin language with a unique method that goes beyond syntax and how-to manuals and teaches you how to think like a great Kotlin developer. You’ll learn everything from language fundamentals to collections, gen- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
Filled with tips, tricks, and techniques, this easy-to-use book is the perfect resource for intermediate to advanced users of Excel. You'll find complete recipes for more than a dozen topics covering formulas, PivotTables, charts, Power Query, and more. Each recipe poses a particular problem and outlines a solution that you can put to use right awa- ePub + Mobi pkt
(203,15 zł najniższa cena z 30 dni)
211.65 zł
259.00 zł (-18%) -
Promocja Promocja 2za1
Dzięki tej książce błyskawicznie uzyskasz odpowiedzi na nurtujące programistów pytania o walidację danych w formularzach, testowanie kodu czy powiązanie kodu aplikacji z kodem serwerowym. Dowiesz się również, jak zapewnić sobie możliwość wielokrotnego wykorzystywania kodu i implementacji złożonych operacji w prosty sposób. Znajdziesz tu szereg przykładowych kodów, pogrupowanych tematycznie i dobranych tak, aby ułatwić Ci rozwiązywanie problemów najczęściej pojawiających się podczas pisania aplikacji Reacta. Poszczególne próbki kodu zostały gruntownie objaśnione, dzięki czemu szybko zrozumiesz, w jaki sposób współdziałają komponenty aplikacji Reacta i jego biblioteki. A wtedy w pełni docenisz zalety tego frameworku!- Druk
- PDF + ePub + Mobi pkt
(59,40 zł najniższa cena z 30 dni)
59.40 zł
99.00 zł (-40%) -
Promocja Promocja 2za1
React helps you create and work on an app in just a few minutes. But learning how to put all the pieces together is hard. How do you validate a form? Or implement a complex multistep user action without writing messy code? How do you test your code? Make it reusable? Wire it to a backend? Keep it easy to understand? The React Cookbook delivers answ- ePub + Mobi pkt
(186,15 zł najniższa cena z 30 dni)
194.65 zł
228.99 zł (-15%) -
Ta książka, podobnie jak inne pozycje z serii Rusz głową!, została przygotowana zgodnie z jedyną w swoim rodzaju metodyką nauczania wykorzystującą zasady funkcjonowania ludzkiego mózgu. Dzięki niej nauczysz się myśleć jak najlepsi programiści i niepostrzeżenie zaczniesz tworzyć wydajny kod w Kotlinie.
- Druk
Czasowo niedostępna
-
Promocja Promocja 2za1
Sięgnij po ten nietypowy podręcznik! Możesz uznać jego formę i sposób przekazywania treści za dziwny, ale prędko przekonasz się, że jest wyjątkowo skuteczny. Twój mózg się zaangażuje i błyskawicznie przyswoi sobie techniki programowania dla Androida. A to wszystko dzięki nowatorskiemu podejściu autorów, którzy uznali, że najszybciej uczymy się wtedy, gdy uwzględnimy specyfikę działania własnego mózgu! Dowiesz się, jak przygotować sobie warsztat pracy, czyli Android Studio. Od razu zaprojektujesz strukturę aplikacji i zbudujesz dobry interfejs. Będziesz swobodnie posługiwał się aktywnościami, intencjami, usługami. Poznasz narzędzia Gradle, ART i ADB, dowiesz się, jak wykorzystywać bazy danych SQLite. A potem będzie jeszcze ciekawiej...- Druk
(71,40 zł najniższa cena z 30 dni)
71.40 zł
119.00 zł (-40%) -
Książka, którą trzymasz w rękach, to podręcznik niezwykły, gdyż uwzględnia specyfikę funkcjonowania ludzkiego mózgu i sposób, w jaki najszybciej się uczy. Dzięki nowatorskiemu podejściu autorów nauka pisania aplikacji nie jest nudna: niepostrzeżenie będziesz nabierał coraz większej wprawy. Już w trakcie zapoznawania się z podstawowymi koncepcjami rozpoczniesz pracę w IDE Android Studio. Dowiesz się, jak zaprojektować strukturę aplikacji i jak zbudować idealny interfejs.
- Druk
Czasowo niedostępna
-
Dzięki tej książce możesz dołączyć do ich grona! Kolejne wydanie z serii „Rusz głową” to gwarancja sukcesu. Zastosowanie nowatorskich technik nauki pozwala na błyskawiczne przyswojenie wiedzy. W trakcie lektury poznasz składnię języka C, dostępne typy zmiennych, sposoby zarządzania pamięcią oraz zasady tworzenia przejrzystego kodu. Ponadto nauczysz się biegle obsługiwać kompilator, korzystać z plików nagłówkowych oraz przesyłać komunikaty między procesami. Dzięki licznym ćwiczeniom bez problemu utrwalisz zdobytą wiedzę. Książka ta jest wprost genialną pozycją dla wszystkich osób chcących wkroczyć w świat języka C. Przyda się również studentom na zajęciach z programowania. Warto ją mieć!
- Druk
Niedostępna
-
Najważniejsze zagadnienia zostały tu zilustrowane za pomocą — nierzadko zabawnych — przykładów z życia codziennego, takich jak analiza statystyk sportowych, wyników gier hazardowych czy testów nowych leków. Dzięki tej książce dowiesz się m.in., jak wybrać optymalny wykres do wizualizacji określonych danych, szybko wskazać wartości reprezentatywne dla danego zbioru danych i za pomocą rachunku prawdopodobieństwa przewidywać skutki powtarzalnych zdarzeń w długich seriach. Z łatwością nie tylko przyswoisz zawartą tu wiedzę, ale i wykorzystasz ją w codziennym życiu!
- Druk
Niedostępna
-
Książkę Head First Ruby on Rails. Edycja polska napisano w oparciu o najnowsze, skuteczne techniki ułatwiające zrozumienie i przyswajanie wiedzy. Dzięki temu szybko i bez trudności nauczysz się tworzyć interaktywne aplikacje internetowe za pomocą tej platformy. Dowiesz się, na czym polega współpraca z bazą danych, integracja z Ajaksem i XML oraz dynamiczne wykreślanie danych. Ponieważ to obrazy najlepiej przemawiają do Twojego umysłu, książka ta została bogato zilustrowana - abyś jak najszybciej poznał możliwości Rails i natychmiast zaczął wykorzystywać je w praktyce.
- Druk
Niedostępna
Ebooka "Head First Android Development. 3rd Edition" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Booxs i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Head First Android Development. 3rd Edition" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Head First Android Development. 3rd Edition" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły książki
- ISBN Ebooka:
- 978-14-920-7647-6, 9781492076476
- Data wydania ebooka :
- 2021-11-10 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Język publikacji:
- 1
- Rozmiar pliku ePub:
- 112.7MB
- Rozmiar pliku Mobi:
- 191.3MB
- Zgłoś erratę
- Kategorie:
Programowanie mobilne » FLEX
Spis treści książki
- Table of Contents (the real thing)
- How to use this book: Intro
- Who is this book for?
- Who should probably back away from this book?
- We know what youre thinking
- We know what your brain is thinking
- Metacognition: thinking about thinking
- Heres what WE did
- Heres what YOU can do to bend your brain into submission
- Read me
- The truly awesome technical review team
- Acknowledgments
- OReilly Online Learning
- Who is this book for?
- 1. Getting Started: Diving In
- Welcome to Androidville
- Activities define what the app does
- Layouts define what each screen looks like
- There may be extra files too
- Activities and layouts form the backbone of your app
- Heres what were going to do
- Android Studio: your development environment
- You need to install Android Studio
- Install Android Studio
- Lets build a basic app
- How to build the app
- 1. Create a new project
- 2. Select a project template
- 3. Configure your project
- Youve created your first Android project
- Dissecting your new project
- The folder structure includes different types of files
- Introducing the key files in your project
- Edit code with the Android Studio editors
- The code editor
- The design editor
- The story so far
- How to run the app on a physical device
- 1. Enable USB debugging on your device
- 2. Set up your computer to detect the device
- 3. Use a USB cable to plug your device into your computer
- 4. Run the app
- How to run the app on a virtual device
- Create an Android Virtual Device (AVD)
- Open the Android Virtual Device Manager
- Select the hardware
- Select a system image
- Verify the AVD configuration
- The virtual device gets created
- Run the app on the AVD
- Compile, package, deploy, run
- Test Drive
- What just happened?
- Lets refine the app
- The app has one activity and one layout
- The activity controls what the app does
- The layout controls the apps appearance
- Whats in the layout?
- The design editor
- The code editor
- activity_main.xml has two elements
- Update the text displayed in the layout
- What the code does
- Test Drive
- Your Android Toolbox
- Welcome to Androidville
- 2. Building Interactive Apps: Apps That Do Something
- Lets build a Beer Adviser app
- Heres what were going to do
- Create the project
- Weve created a default activity and layout
- A closer look at the design editor
- Add a button using the design editor
- Changes in the design editor are reflected in the XML
- activity_main.xml has a new button
- Buttons and text views are subclasses of the same Android View class
- android:id
- android:layout_width, android:layout_height
- android:text
- Buttons and text views are subclasses of the same Android View class
- A closer look at the layout code
- The <LinearLayout> element
- The <Button> element
- The <TextView> element
- Lets update the layout XML
- The XML changes are reflected in the design editor
- Test Drive
- There are warnings in the layout
- because theres hardcoded text
- Put text in a String resource file
- Android Studio helps you extract String resources
- Extract the String resource
- A String resource has been added to strings.xml
- activity_main.xml uses the String resource
- You also can extract String resources manually
- Add and use a new String resource
- Test Drive
- Add values to the spinner
- Adding an array resource is similar to adding a String
- Add the string-array to strings.xml
- Get the spinner to display the arrays values
- The full code for activity_main.xml
- Test Drive
- We need to make the app interactive
- What the MainActivity code looks like
- A button can listen for on-click events
- using an OnClickListener
- Get a reference to the button
- and call its setOnClickListener method
- Pass a lambda to the setOnClickListener method
- How to edit a text views text
- How to get the spinners value
- Pool Puzzle
- Pool Puzzle Solution
- The updated code for MainActivity.kt
- What happens when you run the code
- Test Drive
- Add the getBeers() method
- Activity Magnets
- Activity Magnets Solution
- The full code for MainActivity.kt
- What happens when you run the code
- Test Drive
- Your Android Toolbox
- 3. Layouts: Being a layout
- It all starts with a layout
- Android has different types of layout
- Use the best layout for your screen design
- Lets build a linear layout
- Create a new project
- How to define a linear layout
- Orientation can be vertical or horizontal
- Use padding to add space to the layouts edges
- The layout code so far
- An edit text lets you enter text
- Add views to the layout XML
- Make a view streeeeetch by adding weight
- How to add weight to one view
- How to add weight to multiple views
- The gravity attribute controls the position of a views contents
- Values you can use with the android:gravity attribute
- Layout Magnets
- Layout Magnets Solution
- The story so far
- layout-gravity controls the position of a view within a layout
- More values you can use with the android:layout-gravity attribute
- Use margins to add space between views
- The full linear layout code
- Test Drive
- BE the Layout
- BE the Layout Solution
- Your activity code tells Android which layout it uses
- The layouts views are inflated into objects
- Layout inflation: an example
- A frame layout stacks its views
- Create a new project
- How to define a frame layout
- Add an image to your project
- A frame layout stacks views in the order they appear in the layout XML
- Test Drive
- All layouts are a type of ViewGroup
- and a ViewGroup is a type of View
- A scroll view inserts a vertical scrollbar
- How to add a scroll view
- Test Drive
- Your Android Toolbox
- 4. Constraint Layouts: Draw Up a Blueprint
- Nested layouts revisited
- Nesting layouts comes at a price
- Introducing the constraint layout
- You design constraint layouts VISUALLY
- Constraint layouts are part of Android Jetpack
- Heres what were going to do
- Create a new project
- Use Gradle to include Jetpack libraries
- The project build.gradle needs a Google repository line
- The app build.gradle includes the constraint layouts library
- Lets add a constraint layout to activity_main.xml
- Show the layout in the blueprint
- Add a button to the blueprint
- Position views using constraints
- Well add a horizontal constraint to the button
- Add a vertical constraint too
- Use opposing constraints to center views
- You can delete constraints you no longer need
- Remove constraints with the constraint widget
- You can use it to add margins too
- Changes to the blueprint appear in the XML
- Views can have bias
- Test Drive
- You can change a views size
- Make the view just big enough
- Match the views constraints
- BE the Constraint
- BE the Constraint Solution
- Most layouts need multiple views
- Add a second button to the blueprint
- You can connect views to other views
- You can align views too
- Align views using guidelines
- Guidelines have a fixed position
- Create a movable barrier
- Lets build a layout that uses a barrier
- Add a horizontal barrier
- Place the barrier beneath the views
- Constrain a button under the barrier
- The full code for activity_main.xml
- Test Drive
- Use a chain to control a linear group of views
- Were going to create a horizontal chain
- The chain will use three buttons
- Align the views were going to chain
- Create the horizontal chain
- There are different styles of chain
- Spread spaces out views between the blueprints edges
- Spread inside moves the first and last view to the edges
- Packed moves the views together
- Test Drive
- A flow is like a multi-line chain
- How to add a flow
- You can control the flows appearance
- Use chain to create a multi-line chain
- Use aligned to line up the views
- The full code for activity_main.xml
- Test Drive
- Your Android Toolbox
- 5. The Activity Lifecycle: Being an Activity
- How do activities really work?
- Introducing the Stopwatch app
- Create a new project
- Add String resources for the text labels
- The layout includes a Chronometer view
- The full code for activity_main.xml
- The activity code controls the stopwatch
- The Chronometers key properties and methods
- The base property
- The start() method
- The stop() method
- The full code for MainActivity.kt
- What happens when you run the app
- Test Drive
- But theres just one problem
- What happens when the app runs
- Rotating the screen changes the device configuration
- An activitys states
- The activity lifecycle: from create to destroy
- Your activity inherits the lifecycle methods
- Save the current state in a Bundle
- Add values using put methods
- Retrieve values using get methods
- Save the state using onSaveInstanceState()
- Restore the state using onCreate()
- The updated MainActivity.kt code
- What happens when you run the app
- Test Drive
- Activity Magnets
- Activity Magnets Solution
- Theres more to an activitys life than create and destroy
- Start, stop, and restart
- The visible lifecycle
- We need to implement two more lifecycle methods
- Implement onStop() to pause the stopwatch
- Restart the stopwatch when the app becomes visible
- The updated MainActivity.kt code
- What happens when you run the app
- Test Drive
- What if an activity is only partially visible?
- The foreground lifecycle
- Pause the stopwatch if the activitys paused
- The complete MainActivity.kt code
- What happens when you run the app
- Test Drive
- Your handy guide to the activity lifecycle methods
- BE the Activity
- BE the Activity Solution
- Your Android Toolbox
- How do activities really work?
- 6. Fragments and Navigation: Finding Your Way
- Most apps need more than one screen
- Each screen is a fragment
- WelcomeFragment
- MessageFragment
- EncryptFragment
- Navigate between screens using the Navigation component
- Heres what were going to do
- Create a new project
- Add some String resources
- Add WelcomeFragment to the project
- What fragment code looks like
- Fragment code looks similar to activity code
- The fragments onCreateView() method
- Inflate the fragments layout, and return it
- Fragment layout code looks like activity layout code
- You display a fragment in a FragmentContainerView
- Update the activity_main.xml code
- The full code for MainActivity.kt
- What the code does
- Test Drive
- Pool Puzzle
- Pool Puzzle Solution
- Create MessageFragment
- Update MessageFragments layout
- Update MessageFragment.kt
- Use the Navigation component to navigate between fragments
- Use Gradle to add the Navigation component to your project
- Add a version number to the project build.gradle file
- Add a dependency to the app build.gradle file
- Create a navigation graph
- Add fragments to the navigation graph
- Connect fragments using an action
- Every action needs a unique ID
- Navigation graphs are XML resources
- Add a navigation host to the layout using a FragmentContainerView
- Add a NavHostFragment to activity_main.xml
- We need to navigate between the fragments
- Add an OnClickListener to the button
- Fragment OnClickListener code is a little different
- Get a navigation controller
- Tell it where to navigate with an action
- The full code for WelcomeFragment.kt
- What happens when the app runs
- Test Drive
- Your Android Toolbox
- 7. Safe Args: Passing Information
- The Secret Message app navigates between fragments
- MessageFragment needs to pass the message to a new fragment
- Heres what were going to do
- Create EncryptFragment
- and update its layout
- Update EncryptFragment.kt
- Add EncryptFragment to the navigation graph
- The updated nav_graph.xml code
- MessageFragment needs to navigate to EncryptFragment
- Test Drive
- Add Safe Args to the build.gradle files
- Add a classpath to the project build.gradle file
- Add the plug-in to the app build.gradle file
- EncryptFragment needs to accept a String argument
- The updated nav_graph.xml code
- MessageFragment needs to pass a message to EncryptFragment
- You can pass arguments to navigation actions
- Safe Args generates Directions classes
- Use a Directions class to add arguments to actions
- Update the MessageFragment.kt code
- EncryptFragment needs to get the arguments value
- Use an Args class to retrieve arguments
- We need to encrypt the message
- The full code for EncryptFragment.kt
- What happens when the app runs
- Test Drive
- Navigation Magnets
- Navigation Magnets Solution
- What if the user wants to go back?
- We could change the back behavior
- Welcome to the back stack
- A back stack scenario
- Use the navigation graph to pop fragments off the back stack
- The updated nav_graph.xml code
- Test Drive
- BE the Safe Args Plug-in
- BE the Safe Args Plug-in Solution
- Your Android Toolbox
- 8. Navigation ui: Going Places
- Different apps, different structures
- Android includes navigation UI components
- An app bar
- The bottom navigation bar
- A navigation drawer
- How the CatChat app will work
- Heres what were going to do
- Create a new project
- A default app bar gets added
- by applying a theme
- The CatChat app will use a Material theme
- The app build.gradle file needs a Material library dependency
- Apply a theme in AndroidManifest.xml
- Define styles in style resource files
- Styles can override theme colors
- Color resource files define a set of colors
- Replace the default app bar with a toolbar
- Remove the default app bar using a theme
- A toolbar is a type of View
- Add the toolbar to activity_main.xml
- Where did the app name go?
- Set the toolbar as MainActivitys app bar
- Test Drive
- Lets use the toolbar to navigate
- How toolbar navigation will work
- Create InboxFragment
- Create HelpFragment
- Well use the Navigation component to navigate to HelpFragment
- Add a version number to the project build.gradle file
- Add dependencies to the app build.gradle file
- Add the fragments to a navigation graph
- Add a navigation host to activity_main.xml
- Specify items in the toolbar with a menu resource file
- Lets add a Help item to the menu
- onCreateOptionsMenu() adds menu items to the toolbar
- Respond to menu item clicks with onOptionsItemSelected()
- We need to configure the toolbar
- Configure the toolbar using an AppBarConfiguration
- The full code for MainActivity.kt
- What happens when the app runs
- Test Drive
- BE the Menu
- BE the Menu Solution
- Most types of UI navigation work with the Navigation component
- How the bottom navigation bar will work
- Create SentItemsFragment
- Add SentItemsFragment to the Navigation graph
- The bottom navigation bar needs a new menu resource file
- A bottom navigation bar is a type of View
- The full code for activity_main.xml
- Link the bottom navigation bar to the navigation controller
- The updated code for MainActivity.kt
- Test Drive
- A navigation drawer lets you display many navigation items
- Lets replace the bottom navigation bar with a navigation drawer
- Navigation drawers deconstructed
- The drawer gets its items from a menu
- Add the support section
- as a separate submenu
- Highlight the selected item with groups
- The full code for menu_main.xml
- Create the navigation drawers header
- Add the image file
- and update the nav_header.xml code
- How to create a navigation drawer
- The full code for activity_main.xml
- Weve added a navigation drawer to the layout
- Configure the toolbars drawer icon
- and link the drawer to the navigation controller
- The full code for MainActivity.kt
- Test Drive
- Layout Magnets
- Layout Magnets Solution
- Your Android Toolbox
- 9. Material Views: A Material World
- Material is used throughout Androidville
- The Bits and Pizzas app
- Heres what well do
- Create the Bits and Pizzas project
- Add a Material library dependency to the app build.gradle file
- Create OrderFragment
- Display OrderFragment in MainActivitys layout
- Replace the default app bar with a toolbar
- Fragments dont have a setSupportActionBar() method
- Weve added the toolbarnow what?
- We want the toolbar to respond to scrolls
- The coordinator layout coordinates animations between views
- The app bar layout enables toolbar animation
- Tell the toolbar how to respond to scroll events
- A nested scroll view makes layout content scrollable
- The full code for fragment_order.xml
- Test Drive
- BE the Layout
- BE the Layout Solution
- Lets create a collapsing toolbar
- How to create a plain collapsing toolbar
- How to add an image to a collapsing toolbar
- Add a restaurant image drawable
- The full code for fragment_order.xml
- Test Drive
- Layout Magnets
- We need to build OrderFragments main content
- Choose a pizza type using a radio button
- Radio buttons are a type of compound button
- A chip is a type of flexible compound button
- Add multiple chips to a chip group
- Use isChecked to find out if a chip is checked
- A FAB is a floating action button
- You can anchor a FAB to a collapsing toolbar
- We need to build OrderFragments layout
- The full code for fragment_order.xml
- Test Drive
- Lets make the FAB respond to clicks
- Add an OnClickListener to the FAB
- Find out if a pizza type has been selected
- A toast is a simple pop-up message
- Add a toast to the FAB OnClickListener
- Display the pizza order in a snackbar
- Snackbars can have actions
- The snackbar code for the pizza order
- The full code for OrderFragment.kt
- Test Drive
- Pool Puzzle
- Pool Puzzle Solution
- Layout Magnets Solution
- Your Android Toolbox
- 10. View Binding: Bound Together
- Behind the scenes of findViewById()
- findViewById() looks for a view in the view hierarchy
- Theres a downside to findViewById()
- View binding to the rescue
- View binding is safer and more efficient than findViewById()
- Heres how well use view binding
- The Stopwatch app revisited
- Enable view binding in the app build.gradle file
- Enabling view binding generates code for each layout
- How to add view binding to an activity
- Use the binding property to interact with views
- The layout code
- The activity code
- The full code for MainActivity.kt
- What the code does
- Test Drive
- Activity Magnets
- Fragments can use view binding too (but the codes a little different)
- Lets implement view binding in the Bits and Pizzas app
- Enable view binding for Bits and Pizzas
- Binding classes are generated for every layout
- Fragment view binding code is a little different
- Activities can access views from onCreate()
- Fragments can access views from onCreateView() to onDestroyView()
- What fragment view binding code looks like
- _binding refers to the binding object
- ...and the binding property provides non-null access to it
- The full code for OrderFragment.kt
- Test Drive
- Activity Magnets Solution
- Your Android Toolbox
- Behind the scenes of findViewById()
- 11. View Models: Model Behavior
- Configuration changes revisited
- There are other problems, too
- Introducing the view model
- Why use a view model?
- What the guessing game will do
- How the app will be structured
- Heres what were going to do
- Create the Guessing Game project
- Update the project build.gradle file
- and update the app build.gradle file too
- The Guessing Game app has two fragments
- Create GameFragment
- and then create ResultFragment
- How navigation should work
- Create the navigation graph
- Update the navigation graph
- Display the current fragment in MainActivitys layout
- Update GameFragments layout
- What GameFragment needs to do
- The GameFragment.kt code
- Update ResultFragments layout
- We also need to update ResultFragment.kt
- The ResultFragment.kt code
- What happens when the app runs
- Test Drive
- The game loses state when the screen rotates
- A view model holds business logic
- Add a view model dependency to the app build.gradle file
- and create a view model
- The full code for GameViewModel.kt
- Create a GameViewModel object
- Use a ViewModelProvider to create view models
- The updated code for GameFragment.kt
- What happens when the app runs
- Test Drive
- BE the View Model
- Weve added a view model for GameFragment
- ResultFragment needs a view model too
- ResultViewModel needs to hold the result
- We need to link ResultViewModel to ResultFragment
- A view model factory creates view models
- Create the ResultViewModelFactory class
- Use the factory to create the view model
- The updated code for ResultFragment.kt
- What happens when the app runs
- Test Drive
- View Model Magnets
- View Model Magnets Solution
- BE the View Model Solution
- Your Android Toolbox
- Configuration changes revisited
- 12. Live Data: Leaping into Action
- The Guessing Game app revisited
- The fragments decide when to update views
- Let the view model say when a values changed
- Heres what were going to do
- Add a live data dependency to the app build.gradle file
- GameViewModel and GameFragment need to use live data
- Which view model properties should use live data?
- Live data objects use a value property
- The value property can be null
- The full code for GameViewModel.kt
- The fragment observes the view model properties and reacts to changes.
- The full code for GameFragment.kt
- What happens when the app runs
- Test Drive
- Fragments can update GameViewModels properties
- Keep your privates private
- The full code for GameViewModel.kt
- What happens when the app runs
- Test Drive
- GameFragment still includes game logic
- Make GameViewModel decide when the game is over
- Pool Puzzle
- Pool Puzzle Solution
- The full code for GameViewModel.kt
- Make GameFragment observe the new property
- What happens when the app runs
- Fragment Magnets
- Fragment Magnets Solution
- Test Drive
- Your Android Toolbox
- 13. Data Binding: Building Smart Layouts
- Back to the Guessing Game app
- The fragments update the views in their layouts
- We can make the views update themselves instead
- Heres what were going to do
- Enable data binding in the app build.gradle file
- ResultFragment updates the text in its layout
- How well implement data binding
- 1. Add <layout> and <data> elements
- 2. Set the layouts data binding variable
- 3. Use the layouts data binding variable to access the view model
- The full code for fragment_result.xml
- The full code for ResultFragment.kt
- What happens when the app runs
- Test Drive
- Layout Magnets
- Layout Magnets Solution
- GameFragment can use data binding too
- Add <layout> and <data> elements to fragment_game.xml
- Use the data binding variable to set the layouts text
- Two of the views need to show extra text
- String resources revisited
- String resources can have arguments
- Add two new String resources to strings.xml
- The layout can pass parameters to String resources
- The full code for fragment_game.xml
- We need to set the gameViewModel variable
- We also need to make the data binding use live data
- The full code for GameFragment.kt
- What happens when the app runs
- Test Drive
- You can use data binding to call methods
- Add finishGame() to GameViewModel.kt
- Use data binding to make a button call a method when clicked
- The full code for fragment_game.xml
- What happens when the app runs
- Test Drive
- Pool Puzzle
- Fireside Chats
- We can switch off view binding
- Switch off view binding in the apps build.gradle file
- Test Drive
- Binding-Cross
- Binding-Cross Solution
- Pool Puzzle Solution
- Your Android Toolbox
- 14. Room Databases: Room with a View
- Most apps need to store data
- Apps can persist data using a database
- How the app will be structured
- Room is a database library that sits on top of SQLite
- Room apps are usually structured using MVVM
- Heres what were going to do
- Create the Tasks project
- Add a variable to the project build.gradle file
- and update the app build.gradle file, too
- Create TasksFragment
- Update TasksFragment.kt
- Update fragment_tasks.xml
- Display TasksFragment in MainActivitys layout
- and check the MainActivity.kt code
- How Room databases are created
- 1. A database class
- 2. Data classes for the tables
- 3. Interfaces for data access
- Well store tasks data in a table
- You define tables with an annotated data class
- Create the Task data class
- Specify a table name with @Entity
- Specify the primary key with @PrimaryKey
- Specify column names with @ColumnInfo
- The full code for Task.kt
- Use an interface to specify data operations
- Create the TaskDao interface
- Use @Dao to mark the interface for data access
- Use @Insert to insert a record
- Use @Update to update a record
- Use @Delete to delete a record
- Use @Query for everything else
- The full code for TaskDao.kt
- Create a TaskDatabase abstract class
- Annotate the class with @Database
- Add properties for any DAO interfaces
- Create and return an instance of the database
- The full code for TaskDatabase.kt
- MVVM revisited
- Weve completed all the Model code
- so lets move on to the ViewModel
- Create TasksViewModel
- Database operations can run in slooooow-moooo
- Well use coroutines to run data access code in the background
- 1. Mark TaskDaos methods with suspend
- 2. Launch the insert() method in the background
- TasksViewModel needs a view model factory
- Create TasksViewModelFactory
- TasksViewModelFactory needs a TaskDao
- The TaskDatabase code has a TaskDao property
- The updated code for TasksFragment.kt
- TasksFragment can use data binding
- Well use data binding to insert a record
- Set TasksViewModels newTaskName property
- Call TasksViewModels addTask() method
- The full fragment_tasks.xml code
- The full TasksFragment.kt code
- What happens when the code runs
- Test Drive
- TasksFragment needs to display records
- Use getAll() to get all tasks from the database
- A LiveData<List<Task>> is a more complex type
- Use Transformations.map() to transform live data objects
- Lets update the TasksViewModel code
- Well bind the tasksString property to the layouts text view
- We need to make the layout respond to live data updates
- The full TasksFragment.kt code
- What happens when the code runs
- Test Drive
- Mixed Messages
- Mixed Messages Solution
- Your Android Toolbox
- Most apps need to store data
- 15. Recycler Views: Reduce, Reuse, Recycle
- What the Tasks app currently looks like
- We can turn the list into a recycler view
- Why use a recycler view?
- Recycler views get their data from an adapter
- Heres what were going to do
- Add a recycler view dependency to the app build.gradle file
- Tell the recycler view how to display each item
- by defining a layout file
- The adapter adds data to the recycler view
- Create the adapter file
- Tell the adapter what data it should work with
- Override the getItemCount() method
- Define the adapters view holder
- Override the onCreateViewHolder() method
- Add data to the layouts view
- The full code for TaskItemAdapter.kt
- The adapter code is complete
- We need to display the recycler view
- How to add a recycler view to a layout
- The full code for fragment_tasks.xml
- Tell the recycler view to use the adapter
- The updated code for TasksFragment.kt
- Weve added a recycler view to TasksFragments layout
- Well make TasksFragment add task data to TaskItemAdapter
- Update the TasksViewModel.kt code
- TasksFragment needs to update TaskItemAdapters data property
- The full code for TasksFragment.kt
- Weve finished writing all the recycler view code
- What happens when the code runs
- Test Drive
- Adapter Magnets
- Adapter Magnets Solution
- Recycler views are very flexible
- Recycler view 2.0
- Add a card view dependency to the app build.gradle file
- How to create a card view
- The full code for task_item.xml
- The adapters view holder needs to work with the new layout code
- The full code for TaskItemAdapter.kt
- What the recycler view looks like so far
- The layout manager gallery
- Display items in a horizontal row
- Use GridLayoutManager to display items in a grid
- Arrange items in a staggered grid
- Update fragment_tasks.xml to arrange items in a grid
- What happens when the code runs
- Test Drive
- Pool Puzzle
- Pool Puzzle Solution
- Your Android Toolbox
- 16. Diffutil and Data Binding: Life in the Fast Lane
- The recycler view displays task data correctly
- but when the datas updated, the recycler view jumps
- The Tasks app revisited
- How the recycler view gets its data
- The data propertys setter calls notifyDataSetChanged()
- notifyDataSetChanged() redraws the entire list
- Tell the recycler view what needs to change
- DiffUtil works out differences between lists
- Heres what were going to do
- We need to implement DiffUtil.ItemCallback
- Create TaskDiffItemCallback.kt
- A ListAdapter accepts a DiffUtil.ItemCallback argument
- We can simplify the rest of TaskItemAdapters code
- The updated code for TaskItemAdapter.kt
- Populate the ListAdapters list
- using submitList()
- The updated code for TasksFragment.kt
- What happens when the code runs
- Test Drive
- BE the ListAdapter
- Recycler views can use data binding
- How well implement data binding
- Add a data binding variable to task_item.xml
- The layout gets inflated in the adapters view holder code
- Use the binding class to inflate the layout
- Set the layouts data binding variable to a Task
- The full code for TaskItemAdapter.kt
- Use data binding to set the layouts views
- The full code for task_item.xml
- What happens when the code runs
- Test Drive
- Adapter Magnets
- Adapter Magnets Solution
- BE the ListAdapter Solution
- Your Android Toolbox
- The recycler view displays task data correctly
- 17. Recycler View Navigation: Pick a Card
- Recycler views can be used for navigation
- How the Tasks app is currently structured
- Were going to make the recycler view navigate to a new fragment
- Heres what were going to do
- Make each item clickable
- Where should we create the toast?
- Well make TasksFragment pass the toast code in a lambda
- How the code will work
- The full code for TaskItemAdapter.kt
- Well pass a lambda to TaskItemAdapter
- The full code for TasksFragment.kt
- What happens when the code runs
- Test Drive
- Adapter Magnets
- Adapter Magnets Solution
- We want to use the recycler view to navigate to a new fragment
- Update the project build.gradle file
- then update the app build.gradle file
- Create EditTaskFragment
- and create a navigation graph
- Update the navigation graph
- Add a NavHostFragment to MainActivitys layout
- Make TasksFragment navigate to EditTaskFragment
- Add a new property to TasksViewModel
- Add methods to update the new property
- The full code for TasksViewModel.kt
- Make TasksFragment navigate to EditTaskFragment
- Call onTaskClicked() when the user clicks a task
- Navigate to EditTaskFragment when navigateToTask gets updated
- The full code for TasksFragment.kt
- Make EditTaskFragment display the task ID
- We also need to update EditTaskFragment.kt
- The full code for EditTaskFragment.kt
- What happens when the code runs
- Test Drive
- We want to use EditTaskFragment to update task records
- Use TaskDao to interact with database records
- Well create a view model to access TaskDaos methods
- Create EditTaskViewModel
- The view model needs to get a task record
- and include methods to update and delete the task
- EditTaskViewModel will tell EditTaskFragment when to navigate
- The full code for EditTaskViewModel.kt
- EditTaskViewModel needs a view model factory
- Create EditTaskViewModelFactory
- fragment_edit_task.xml needs to display the task
- We need to update EditTaskFragment.kt too
- The full code for EditTaskFragment.kt
- What happens when the code runs
- Test Drive
- Your Android Toolbox
- 18. Jetpack Compose: Compose Yourself
- UI components dont have to be Views
- Were going to build a Compose app
- Heres what were going to do
- Create a new Compose project
- Configure the project
- Compose projects have no layout files
- What Compose activity code looks like
- Compose activities extend ComponentActivity
- Use a Text composable to display text
- Use composables in composable functions
- Call the Hello composable from setContent()
- Most UIs have multiple composables
- You can arrange composables using Row or Column
- The full code for MainActivity.kt
- Test Drive
- You can preview composable functions
- Add MainActivityPreview to MainActivity.kt
- Preview composables with the Design or Split option
- Pool Puzzle
- Pool Puzzle Solution
- Lets make the app convert temperatures
- Add a MainActivityContent composable function
- Display the header image
- with an Image composable
- Add an Image to MainActivity.kt
- Lets display the temperature text
- Test Drive
- Use a Button composable to add a button
- Lets write a ConvertButton composable function
- We need to pass a lambda to ConvertButton
- We need to change the value of TemperatureTexts argument
- Use remember to store celsius in memory
- The full code for MainActivity.kt
- What happens when the app runs
- Test Drive
- Compose Magnets
- Compose Magnets Solution
- Let the user enter a temperature
- Well use a TextField composable
- Add a TextField to a composable function
- Call the function in MainActivityContent
- The full code for MainActivity.kt
- What happens when the app runs
- Test Drive
- Well tweak the apps appearance
- Add padding to the Column composable
- You can center composables in Columns or Rows
- Center all of a Columns content
- Center the content of a single Row
- Applying themes: revisited
- How to apply a theme to composables
- Android Studio includes extra theme code
- How to apply the theme
- The full code for MainActivity.kt
- Test Drive
- BE Compose
- BE Compose Solution
- Your Android Toolbox
- UI components dont have to be Views
- 19. Integrating Compose with views: Perfect Harmony
- You can add composables to View-based UIs
- The Guessing Game app revisited
- The Guessing Game app structure
- Heres what were going to do
- Update the project build.gradle file
- and update the app build.gradle file, too
- Well replace ResultFragments views with composables
- A ComposeView lets you add composables to a layout
- Well add a ComposeView to fragment_result.xml
- Add composables using Kotlin code
- Add a composable function for the fragments content
- Reproduce the Start New Game button
- Reproduce ResultFragments TextView
- The updated code for ResultFragment.kt
- Test Drive
- We need to remove ResultFragments views
- and update ResultFragment.kt
- onCreateView() returns the UIs root view
- Return a ComposeView for Compose UIs
- The full code for ResultFragment.kt
- We can delete fragment_result.xml
- What happens when the app runs
- Test Drive
- Pool Puzzle
- Next well make GameFragment use composables too
- Well add a ComposeView to fragment_game.xml
- Add a composable function for GameFragments content
- Reproduce the Finish Game button
- Reproduce the EditText with a TextField
- Reproduce the Guess button
- The updated code for GameFragment.kt
- Test Drive
- Well display the incorrect guesses in a Text composable
- Respond to LiveData using observeAsState()
- Create an IncorrectGuessesText composable function
- Run IncorrectGuessesText from GameFragmentContent
- Compose Magnets
- Compose Magnets Solution
- The updated code for GameFragment.kt
- Test Drive
- Remove views from GameFragment.kt
- Delete fragment_game.xml
- We can also switch off data binding
- Test Drive
- Pool Puzzle Solution
- Your Android Toolbox
- Leaving town
- Its been great having you here in Androidville
- You can add composables to View-based UIs
- A. Leftovers: The Top Ten Things (we didnt cover)
- 1. Sharing data with other apps
- Sharing data with Androids intent resolver
- Sharing data with the Android Sharesheet
- 2. WorkManager
- Use WorkManager to schedule deferrable tasks
- 3. Dialogs and notifications
- Use dialogs to prompt the user for a decision
- Notifications appear outside the apps UI
- 4. Automated testing
- Unit tests
- Instrumented tests
- An instrumented test example
- 5. Supporting different screen sizes
- Provide alternate layouts
- Use a SlidingPaneLayout
- 6. More Compose features
- The Compose ViewModel library
- Compose constraint layout library
- The Compose Navigation component
- 7. Retrofit
- 8. Android Game Development Kit
- 9. CameraX
- 10. Publishing your app
- Preparing your app for release
- Releasing your app
- 1. Sharing data with other apps
- Index
O'Reilly Media - inne książki
-
Nowość Promocja Promocja 2za1
Business decisions in any context—operational, tactical, or strategic—can have considerable consequences. Whether the outcome is positive and rewarding or negative and damaging to the business, its employees, and stakeholders is unknown when action is approved. These decisions are usually made under the proverbial cloud of uncertainty.With this pra- ePub + Mobi pkt
(186,15 zł najniższa cena z 30 dni)
194.65 zł
228.99 zł (-15%) -
Nowość Promocja Promocja 2za1
If you're a developer looking to build a distributed, resilient, scalable, high-performance application, you may be evaluating distributed SQL and NoSQL solutions. Perhaps you're considering the Aerospike database.This practical book shows developers, architects, and engineers how to get the highly scalable and extremely low-latency Aerospike datab- ePub + Mobi pkt
Aerospike: Up and Running. Developing on a Modern Operational Database for Globally Distributed Apps
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%) -
Promocja Promocja 2za1
Learn how to use Go's strengths to develop services that are scalable and resilient even in an unpredictable environment. With this book's expanded second edition, Go developers will explore the composition and construction of cloud native applications, from lower-level Go features and mid-level patterns to high-level architectural considerations.E- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
Reinforcement learning (RL) has led to several breakthroughs in AI. The use of the Q-learning (DQL) algorithm alone has helped people develop agents that play arcade games and board games at a superhuman level. More recently, RL, DQL, and similar methods have gained popularity in publications related to financial research.This book is among the fir- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
To ensure that applications are reliable and always available, more businesses today are moving applications to AWS. But many companies still struggle to design and build these cloud applications effectively, thinking that because the cloud is resilient, their applications will be too. With this practical guide, software, DevOps, and cloud engineer- ePub + Mobi pkt
(211,65 zł najniższa cena z 30 dni)
211.65 zł
269.00 zł (-21%) -
Promocja Promocja 2za1
Performance tuning is an experimental science, but that doesn't mean engineers should resort to guesswork and folklore to get the job done. Yet that's often the case. With this practical book, intermediate to advanced Java technologists working with complex platforms will learn how to tune Java cloud applications for performance using a quantitativ- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
Today, investment in financial technology and digital transformation is reshaping the financial landscape and generating many opportunities. Too often, however, engineers and professionals in financial institutions lack a practical and comprehensive understanding of the concepts, problems, techniques, and technologies necessary to build a modern, r- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
Until recently, infrastructure was the backbone of organizations operating software they developed in-house. But now that cloud vendors run the computers, companies can finally bring the benefits of agile custom-centricity to their own developers. Adding product management to infrastructure organizations is now all the rage.But how's that possible- ePub + Mobi pkt
(186,15 zł najniższa cena z 30 dni)
194.65 zł
228.99 zł (-15%) -
Promocja Promocja 2za1
Cloud services and SaaS software permeate every company's IT landscape, requiring a shift from manually provisioned services to a more structured approach, with codification at its core. Terraform provides tools to manage the lifecycle of your IT landscape across thousands of different cloud providers and SaaS platforms.By defining your infrastruct- ePub + Mobi pkt
(203,15 zł najniższa cena z 30 dni)
211.65 zł
259.00 zł (-18%) -
Promocja Promocja 2za1
Using machine learning for products, services, and critical business processes is quite different from using ML in an academic or research setting—especially for recent ML graduates and those moving from research to a commercial environment. Whether you currently work to create products and services that use ML, or would like to in the future, this- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%)
Dzięki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep@helion.pl
Książka drukowana
Oceny i opinie klientów: Head First Android Development. 3rd Edition Dawn Griffiths, David Griffiths (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.