developer-roadmap changelog


Here's a rundown of the latest updates and improvements we've made:

New Features

  • Combine & NavigationStack Content in iOS Roadmap: 🚀 We've added detailed content about Combine and Navigation Stacks to the iOS roadmap. Dive into Apple's reactive programming framework and learn how NavigationStack can simplify your SwiftUI navigation. Check out the official docs and videos we've linked for a deeper understanding.
  • iOS Copy and Links: 📱 Added comprehensive iOS-specific information and links across various content files. From architectural patterns to user interactions, this update is a treasure trove for iOS developers.
  • Zones Section in Angular Roadmap: 🌀 Added a summary and resources about Zone.js in Angular. Learn how Angular captures async operations and schedules change detection. We've included links to official resources to help you master Zones.
  • RxJS Transformation in Angular: 🔄 Updated the RxJS transformation section by removing deprecated operators, adding new ones, and sorting them by complexity. Also included a video guide for higher-order mapping operators.
  • Rust Cryptography Links: 🔒 Added links to the 'ring' cryptography library in Rust. Explore this popular library for secure and efficient cryptographic operations.

Improvements

  • Rust Documentation Article: 📚 Added a link to an article on "How to write documentation" in Rust. This resource is perfect for developers looking to master rustdoc and create top-notch project documentation.
  • Android Roadmap Migration: 📱 Migrated the Android roadmap to a new format, streamlining content and improving accessibility. Numerous files were restructured to enhance the developer experience.
  • VoiceOver Content Update: 👩‍🦯 Updated the iOS VoiceOver content, providing valuable information on this assistive technology. Learn how to make your apps more accessible with the resources we've linked.

Bugfixes

  • Content File Not Found: 🛠️ Fixed an issue where the content file was not found by updating labels in devops.json and frontend.json.
  • Broken UI in Fullstack Roadmap: 🖥️ Fixed a broken UI issue in the fullstack roadmap, ensuring it displays correctly.
  • Incorrect Id on SOAP API: 🔧 Fixed an incorrect Id in the SOAP API section, ensuring accurate subtopic references.

Chores

  • Dependency Updates: 📦 Updated various dependencies to their latest versions, including Astro, Playwright, React, Tailwind, and more. This update ensures improved performance, security, and compatibility.

Happy coding! 🚀

Included Commits

2024-07-05T07:12:37 See commit

This commit updates the voice-over content for iOS, providing information about VoiceOver as an assistive technology that allows users to experience the interface on their devices without having to see the screen. It explains that VoiceOver is essential for people who are blind or have low vision, but can also be beneficial in various contexts, such as for individuals prone to motion sickness. The commit includes details about how VoiceOver works as a screen reader, enabling users to navigate through an app's interface using touch gestures, keyboard buttons, or remote buttons, and receive auditory or braille descriptions in over 60 languages and locales.

Additionally, the commit includes links to official resources for developers to learn more about VoiceOver and how to support it in their apps, providing valuable information and guidance on accessibility features for iOS devices.

Files changed

  • src/data/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md
2024-07-05T07:13:25 See commit

This commit adds content to the iOS roadmap regarding Combine and Navigation Stacks. Combine is Apple's framework for reactive programming, utilizing a publisher-subscriber pattern and introducing concepts like Cancellable and various operators. Developers working with Combine will encounter complex generic types, which can be simplified through type-erasure using AnyCancellable. The commit includes links to official documentation and a video for further learning about Combine.

Additionally, the commit introduces the concept of Navigation Stacks in iOS 16 for navigating through SwiftUI apps. NavigationStack is data-driven, with navigationDestinations specified for each data type supported by the app. These destinations are defined once for each NavigationStack and remain valid throughout the app. Navigation is handled through the NavigationLink View, allowing for setting a label and a value (model). Links to official documentation and a video are provided for more information on Navigation Stacks.

Files changed

  • src/data/roadmaps/ios/content/combine@UzpdLLPs226N00c6weWRv.md
  • src/data/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md
2024-07-05T08:49:40 See commit

This commit adds a link to an article titled "How to write documentation" in Rust to the rustdoc content file. The rustdoc tool is used to generate documentation for Rust projects by considering both comments and source code. It can be viewed through a web server or browser and has a unique testing feature to ensure accuracy and up-to-date examples. The article linked provides additional resources for learning more about writing documentation in Rust.

The modifications made in this commit include adding the link to the article in the rustdoc content file, with 5 additions and 1 deletion, totaling 6 changes. This enhancement aims to provide Rust developers with valuable resources for creating and maintaining project documentation using the rustdoc tool.

Files changed

  • src/data/roadmaps/rust/content/121-rustdoc.md
2024-07-05T14:46:02 See commit

This commit involves migrating the Android roadmap to a new format. The changes include modifying the android.json and android.md files, as well as removing various content files related to different aspects of Android development such as language selection, version control, app components, interface and navigation, design architecture, storage, network, asynchronism, common services, linting, debugging, testing, and distribution. Additionally, a new migration-mapping.json file was added, and the resource-progress.ts file was modified as part of this migration process.

Overall, this commit streamlines the Android roadmap by restructuring the content into a new format. Numerous specific content files were removed, and new files were added to facilitate this migration. This update likely aims to improve the organization and accessibility of information within the Android roadmap for developers.

Files changed

  • src/data/roadmaps/android/android.json
  • src/data/roadmaps/android/android.md
  • src/data/roadmaps/android/content/100-pick-a-language/101-java.md
  • src/data/roadmaps/android/content/100-pick-a-language/index.md
  • src/data/roadmaps/android/content/101-the-fundamentals/100-development-ide.md
  • src/data/roadmaps/android/content/101-the-fundamentals/101-basics-of-kotlin.md
  • src/data/roadmaps/android/content/101-the-fundamentals/102-basics-of-oop.md
  • src/data/roadmaps/android/content/101-the-fundamentals/103-datastructures-and-algorithms.md
  • src/data/roadmaps/android/content/101-the-fundamentals/index.md
  • src/data/roadmaps/android/content/102-version-control/100-git.md
  • src/data/roadmaps/android/content/102-version-control/101-github.md
  • src/data/roadmaps/android/content/102-version-control/102-bitbucket.md
  • src/data/roadmaps/android/content/102-version-control/103-gitlab.md
  • src/data/roadmaps/android/content/102-version-control/index.md
  • src/data/roadmaps/android/content/103-app-components/100-activity/100-activity-lifecycle.md
  • src/data/roadmaps/android/content/103-app-components/100-activity/101-state-changes.md
  • src/data/roadmaps/android/content/103-app-components/100-activity/102-tasks-backstack.md
  • src/data/roadmaps/android/content/103-app-components/100-activity/index.md
  • src/data/roadmaps/android/content/103-app-components/101-services.md
  • src/data/roadmaps/android/content/103-app-components/102-content-provider.md
  • src/data/roadmaps/android/content/103-app-components/103-broadcast-receiver.md
  • src/data/roadmaps/android/content/103-app-components/104-intent/100-implicit-intents.md
  • src/data/roadmaps/android/content/103-app-components/104-intent/101-explicit-intents.md
  • src/data/roadmaps/android/content/103-app-components/104-intent/102-intent-filters.md
  • src/data/roadmaps/android/content/103-app-components/104-intent/index.md
  • src/data/roadmaps/android/content/103-app-components/index.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/101-app-shortcuts.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/102-navigation-components.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/100-text-view.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/101-edit-text.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/102-buttons.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/103-image-view.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/104-list-view.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/105-tabs.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/106-fragments.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/107-dialogs.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/108-toast.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/109-bottom-sheet.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/110-drawer.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/111-animations.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/elements/index.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/index.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/100-frame.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/101-linear.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/102-relative.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/103-constraint.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/104-recycle-view.md
  • src/data/roadmaps/android/content/104-interface-and-navigation/layouts/index.md
  • src/data/roadmaps/android/content/105-design-architecture/100-repository-pattern.md
  • src/data/roadmaps/android/content/105-design-architecture/101-builder-pattern.md
  • src/data/roadmaps/android/content/105-design-architecture/102-observer-pattern/100-flow.md
  • src/data/roadmaps/android/content/105-design-architecture/102-observer-pattern/101-rxjava.md
  • src/data/roadmaps/android/content/105-design-architecture/102-observer-pattern/102-rxkotlin.md
  • src/data/roadmaps/android/content/105-design-architecture/102-observer-pattern/103-livedata.md
  • src/data/roadmaps/android/content/105-design-architecture/102-observer-pattern/index.md
  • src/data/roadmaps/android/content/105-design-architecture/103-dependency-injection/100-dagger.md
  • src/data/roadmaps/android/content/105-design-architecture/103-dependency-injection/101-hilt.md
  • src/data/roadmaps/android/content/105-design-architecture/103-dependency-injection/102-koin.md
  • src/data/roadmaps/android/content/105-design-architecture/103-dependency-injection/103-kodein.md
  • src/data/roadmaps/android/content/105-design-architecture/103-dependency-injection/index.md
  • src/data/roadmaps/android/content/105-design-architecture/104-factory-pattern.md
  • src/data/roadmaps/android/content/105-design-architecture/architectural-patterns/100-mvi.md
  • src/data/roadmaps/android/content/105-design-architecture/architectural-patterns/101-mvvm.md
  • src/data/roadmaps/android/content/105-design-architecture/architectural-patterns/102-mvp.md
  • src/data/roadmaps/android/content/105-design-architecture/architectural-patterns/103-mvc.md
  • src/data/roadmaps/android/content/105-design-architecture/architectural-patterns/index.md
  • src/data/roadmaps/android/content/105-design-architecture/index.md
  • src/data/roadmaps/android/content/106-storage/100-shared-preferences.md
  • src/data/roadmaps/android/content/106-storage/101-datastore.md
  • src/data/roadmaps/android/content/106-storage/102-room.md
  • src/data/roadmaps/android/content/106-storage/103-file-system.md
  • src/data/roadmaps/android/content/106-storage/index.md
  • src/data/roadmaps/android/content/107-network/100-retrofit.md
  • src/data/roadmaps/android/content/107-network/101-okhttp.md
  • src/data/roadmaps/android/content/107-network/102-apollo-android.md
  • src/data/roadmaps/android/content/107-network/index.md
  • src/data/roadmaps/android/content/108-asynchronism/100-coroutines.md
  • src/data/roadmaps/android/content/108-asynchronism/101-threads.md
  • src/data/roadmaps/android/content/108-asynchronism/102-rxjava.md
  • src/data/roadmaps/android/content/108-asynchronism/103-rxkotlin.md
  • src/data/roadmaps/android/content/108-asynchronism/104-work-manager.md
  • src/data/roadmaps/android/content/108-asynchronism/index.md
  • src/data/roadmaps/android/content/109-common-services/100-firebase/100-authentication.md
  • src/data/roadmaps/android/content/109-common-services/100-firebase/102-remote-config.md
  • src/data/roadmaps/android/content/109-common-services/100-firebase/103-cloud-messaging.md
  • src/data/roadmaps/android/content/109-common-services/100-firebase/104-fire-store.md
  • src/data/roadmaps/android/content/109-common-services/100-firebase/index.md
  • src/data/roadmaps/android/content/109-common-services/101-google-admob.md
  • src/data/roadmaps/android/content/109-common-services/102-google-play-services.md
  • src/data/roadmaps/android/content/109-common-services/103-google-maps.md
  • src/data/roadmaps/android/content/109-common-services/index.md
  • src/data/roadmaps/android/content/110-linting/100-ktlint.md
  • src/data/roadmaps/android/content/110-linting/101-detekt.md
  • src/data/roadmaps/android/content/110-linting/index.md
  • src/data/roadmaps/android/content/111-debugging/100-timber.md
  • src/data/roadmaps/android/content/111-debugging/101-leak-canary.md
  • src/data/roadmaps/android/content/111-debugging/102-chucker.md
  • src/data/roadmaps/android/content/111-debugging/103-jetpack-benchmark.md
  • src/data/roadmaps/android/content/111-debugging/index.md
  • src/data/roadmaps/android/content/112-testing/100-espresso.md
  • src/data/roadmaps/android/content/112-testing/101-junit.md
  • src/data/roadmaps/android/content/112-testing/index.md
  • src/data/roadmaps/android/content/113-distribution/100-google-playstore.md
  • src/data/roadmaps/android/content/113-distribution/101-firebase-distribution.md
  • src/data/roadmaps/android/content/113-distribution/102-signed-apk.md
  • src/data/roadmaps/android/content/113-distribution/index.md
  • src/data/roadmaps/android/content/crashlytics@xB4evbD07n1VrHOIpowV4.md
  • src/data/roadmaps/android/migration-mapping.json
  • src/lib/resource-progress.ts
2024-07-05T14:57:09 See commit

This commit adds iOS copy and links to various content files related to architectural patterns, async-await in Swift, basic interfaces, creating animations, components, concurrency, core programming concepts, error handling, media, MVP, MVVM-C, MVVM, navigation link, navigation view, presenting and dismissing views, SwiftUI, TCA, UIKit, user interactions, version control, view controller lifecycle, view controllers, views, view transitions, and VIPER. Each of these files has been modified to include iOS-specific information and links.

Overall, this commit enhances the iOS roadmap by providing detailed information and resources on various topics related to iOS development. The addition of iOS-specific content and links will help iOS developers navigate through different architectural patterns, programming concepts, user interactions, and more, providing a comprehensive guide for iOS development.

Files changed

  • src/data/roadmaps/ios/content/architectural-patterns@ajPGMwoaFb1UFWTtpi5kd.md
  • src/data/roadmaps/ios/content/async--await-in-swift@3GtrUXvLgvXK3G8cXRb-P.md
  • src/data/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md
  • src/data/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md
  • src/data/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md
  • src/data/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md
  • src/data/roadmaps/ios/content/core-programming-concepts@mk02yV7_XHkgp2xdNIxaU.md
  • src/data/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md
  • src/data/roadmaps/ios/content/media@nGCG74_Xp_Ngt0u7PZnZl.md
  • src/data/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md
  • src/data/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md
  • src/data/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md
  • src/data/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md
  • src/data/roadmaps/ios/content/navigationlink@my77jLU2qxU7bQ7_Fx2iH.md
  • src/data/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md
  • src/data/roadmaps/ios/content/swiftui@kAIKsDcDzwI1E0wSnC_uo.md
  • src/data/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md
  • src/data/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md
  • src/data/roadmaps/ios/content/user-interactions@GKuxilB0AwjcTgCSk3FeU.md
  • src/data/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md
  • src/data/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md
  • src/data/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md
  • src/data/roadmaps/ios/content/viewcontroller-lifecycle@DZaY060-5D6PbfryOZH9H.md
  • src/data/roadmaps/ios/content/views@se9w7mT1XJLGlmWUhH4Uv.md
  • src/data/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md
  • src/data/roadmaps/ios/content/xibs@RwvC4Pi18_1phcrJL-9iu.md
2024-07-08T11:26:52 See commit

This commit fixes an issue where the content file was not found. The changes were made in the devops.json and frontend.json files in the src/data/roadmaps directory. In both files, the label "Repo Hosting Services" was changed to "VCS Hosting" to address the content file not found error. The modifications in both files included one addition and one deletion, resulting in a total of two changes in each file.

Overall, this commit rectified the content file not found problem by updating the label in both devops.json and frontend.json files to "VCS Hosting." This change was necessary to ensure the correct content is displayed and resolves the issue of the missing content file.

Files changed

  • src/data/roadmaps/devops/devops.json
  • src/data/roadmaps/frontend/frontend.json
2024-07-08T18:15:18 See commit

This commit fixes an issue with an incorrect Id on a SOAP API by updating the Id in the api-design.json file. The changes made include modifying the Id from "dqslZ1FfJjCqkWhxY5JGD" to "Wwd-0PjrtViMFWxRGaQey" for a subtopic, as well as updating the old Id references accordingly. The patch shows the specific lines where these changes were made, with 2 additions and 2 deletions in total.

Overall, this commit addresses a bug related to the Id in the SOAP API, ensuring that the correct Id is now being used for the subtopic in the api-design.json file. By making these modifications, the issue with the incorrect Id has been resolved, with the necessary changes documented in the patch section of the commit.

Files changed

  • src/data/roadmaps/api-design/api-design.json
2024-07-08T18:19:08 See commit

This commit updates dependencies to their latest versions, including packages like Astro, Playwright, React, Tailwind, and others. The changes include updating version numbers for various dependencies in the package.json file, such as "@astrojs/node", "@astrojs/react", "@fingerprintjs/fingerprintjs", "@types/react", "jose", "lucide-react", "playwright", "react-tooltip", "reactflow", "tailwindcss", "unified", and "zustand". Additionally, devDependencies like "@playwright/test", "@tailwindcss/typography", "@types/dom-to-image", "@types/js-cookie", "gh-pages", "js-yaml", "markdown-it", "openai", "prettier", "prettier-plugin-astro", and "prettier-plugin-tailwindcss" have also been updated to their latest versions.

The pnpm-lock.yaml file has also been modified to reflect the changes made to the dependencies in the package.json file. Overall, this chore update ensures that the project is using the most recent versions of its dependencies, potentially improving performance, security, and compatibility with other packages.

Files changed

  • package.json
  • pnpm-lock.yaml
2024-07-08T18:44:21 See commit

This commit fixes a broken user interface issue in the fullstack roadmap. The changes were made to the full-stack.json file in the src/data/roadmaps/full-stack directory. The status of the file was modified to resolve the broken UI problem. The specific details of the fix were not provided in the commit message, but it appears that the necessary adjustments were made to ensure that the fullstack roadmap displays correctly and functions properly for users.

Files changed

  • src/data/roadmaps/full-stack/full-stack.json
2024-07-09T15:04:28 See commit

This commit in the Angular roadmap updates the section on RxJS transformation operators. It removes the deprecated flatMap operator, adds the exhaustMap operator, and includes a video comparing different higher-order RxJS mapping operators. The operators are now sorted by complexity, and the type of some resources has been changed to the official category. The commit modifies the transformation.md file, with 8 additions, 7 deletions, and 15 changes overall.

The commit emphasizes the importance of transforming data emitted by an Observable in RxJS and provides examples of various transformation methods like map, mergeMap, switchMap, concatMap, and exhaustMap. It also includes official documentation links for these methods and a video guide for practical usage. Overall, the commit aims to update and enhance the content related to RxJS transformation operators in the Angular roadmap.

Files changed

  • src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/102-transformation.md
2024-07-10T08:11:03 See commit

This commit adds links to the 'ring' cryptography library in Rust within the content related to cryptography in the project's roadmap. The 'ring' library is highlighted as a popular cryptography library in Rust that offers a safe, fast, and user-friendly platform for various cryptographic operations. It supports a range of cryptographic primitives such as RSA, AES, and SHA, and is particularly focused on implementing the TLS protocol and cryptographic algorithm fundamentals. The library is praised for its ability to eliminate common pitfalls in crypto usage through compile-time and runtime checks, as well as its emphasis on safe and reviewed cryptographic algorithms to prevent accidental use of insecure ones.

The added links provide resources for further exploration of the 'ring' library, including its GitHub repository and documentation on Docs.rs. This inclusion enhances the content related to cryptography in the Rust roadmap by directing users to additional information and resources about the 'ring' library and its capabilities in handling cryptographic operations securely and efficiently.

Files changed

  • src/data/roadmaps/rust/content/113-cryptography/100-ring.md
2024-07-11T08:36:47 See commit

This commit adds information and resources about the Zones section in the Angular roadmap. The 111-zones.md file in the src/data/roadmaps/angular/content directory was modified to include details about Zone.js, a signaling mechanism used by Angular to detect changes in application state. The commit includes a summary of how Zone.js captures asynchronous operations like setTimeout, network requests, and event listeners, as well as how Angular schedules change detection based on signals from Zone.js. Additionally, the commit adds links to official Angular resources on resolving zone pollution, using Angular without ZoneJS (Zoneless), and the NgZone API.

Overall, this commit enhances the Zones section of the Angular roadmap by providing a more detailed explanation of Zone.js and its role in Angular applications. It also includes useful resources for developers looking to understand and optimize the use of Zones in their Angular projects.

Files changed

  • src/data/roadmaps/angular/content/111-zones.md