Oleksandr Leushchenko
Oleksandr Leushchenko
  • 16
  • 56 525
"When Your Backend Is Not Ready" talk by Oleksandr Leushchenko at Full Stack Flutter 2024
As a mobile app developer, it's not uncommon to rely on backend services to power your app's functionality. But what can you do when the backend isn't ready? Maybe the team is working on a new feature, or perhaps there's a delay due to unforeseen circumstances. In these situations, it's tempting to hardcode data to keep mobile development moving forward. But this approach can lead to myriad of problems, including extensive refactoring and potential issues with data consistency.
Fortunately, there are better ways to handle backend delivery delays, like creating a stub server, deploying a fake server within the app, mocking server, and even mocking a mocked server. As a seasoned mobile engineer, I tried all of that. In this session, I'll share my experience and provide practical examples of how to mitigate backend team delays on a new project.
00:00 Introduction
04:45 API contract
08:12 Stubbed BE
11:27 Fake API implementation
14:37 API Interceptors
17:35 Recap
มุมมอง: 714

วีดีโอ

"Building Better Apps with BDD" talk by Oleksandr Leushchenko | Flutter Riga #1"Building Better Apps with BDD" talk by Oleksandr Leushchenko | Flutter Riga #1
"Building Better Apps with BDD" talk by Oleksandr Leushchenko | Flutter Riga #1
มุมมอง 1K10 หลายเดือนก่อน
What is a good app? Is it an app without bugs? With fancy design? The one that opens in 0.05 seconds on our smartphone? I bet there are several apps on your device now that will not conform to any of these criteria, yet you still use them, and even claim some of them as good apps. You use these applications because they are useful for you. How can you write a useful app? By talking. In this pre...
"BDD in Flutter" talk by Oleksandr Leushchenko at Flutter Vikings 2022"BDD in Flutter" talk by Oleksandr Leushchenko at Flutter Vikings 2022
"BDD in Flutter" talk by Oleksandr Leushchenko at Flutter Vikings 2022
มุมมอง 63010 หลายเดือนก่อน
BDD stands for Behaviour-Driven Development, but the development part is rather a side-effect. What does BDD really state? The main goal is to get developers, testers, and stakeholders to talk to each other. To create and share the same understanding of the product flow, we use Gherkin - a native-like language that is easy to read even for deeply non-technical persons. During my talk, we'll rev...
Custom Linter Rule for Dart Analyzer - Flutter Global Summit'23 talk by Oleksandr LeushchenkoCustom Linter Rule for Dart Analyzer - Flutter Global Summit'23 talk by Oleksandr Leushchenko
Custom Linter Rule for Dart Analyzer - Flutter Global Summit'23 talk by Oleksandr Leushchenko
มุมมอง 996ปีที่แล้ว
This video is from the closed senior track from the Flutter Global Summit'23 conference. “This variable can be final”, “Add const here”, “Implicit dynamic” and many other rules help us be effective developers. And even may prevent critical mistakes in early development stages. These common rules were provided by the Dart team, they are the foundation of product quality. Flutter developers may g...
Private Dart and Flutter packages | Flutter ForwardPrivate Dart and Flutter packages | Flutter Forward
Private Dart and Flutter packages | Flutter Forward
มุมมอง 3.3Kปีที่แล้ว
It is hard to imagine a mature Flutter project written in a single package. Sooner or later, product scale forces to split the project into multiple packages. There are multiple ways of referencing packages in pubspec.yaml. The most common of which is to use hosted packages from pub.dev. However, it is not always possible to open source the team’s work, hence there is a need for private package...
"Enterprise Flutter" talk by Oleksandr Leushchenko at Flutter Global Summit 22"Enterprise Flutter" talk by Oleksandr Leushchenko at Flutter Global Summit 22
"Enterprise Flutter" talk by Oleksandr Leushchenko at Flutter Global Summit 22
มุมมอง 3932 ปีที่แล้ว
This is a talk I gave at Flutter Global Summit on the closed senior track. If you enjoy it or find it useful - please help the Ukrainian army fight russia. Donate here - bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi or here uahelp.monobank.ua. Any support is much appreciated 🇺🇦🙏 Abstract: Flutter is easy and fun to use. We all have our favor...
"Functional Dart" talk by Oleksandr Leuschenko at Flutter Global Summit 21 Vol 2"Functional Dart" talk by Oleksandr Leuschenko at Flutter Global Summit 21 Vol 2
"Functional Dart" talk by Oleksandr Leuschenko at Flutter Global Summit 21 Vol 2
มุมมอง 8822 ปีที่แล้ว
Monad! Currying! Functor! Scared? Don’t be! Functional programming terms are no more scary than OOP ones. Every concept was created to solve real-world problems, and not just to make some folks look cooler than others. Bad decisions are gone, good decisions stay. All modern programming languages at least partially support some functional paradigm concepts. During my talk, I will show you some f...
BDD in Flutter #4 - Mocking NetworkBDD in Flutter #4 - Mocking Network
BDD in Flutter #4 - Mocking Network
มุมมอง 2K3 ปีที่แล้ว
The main purpose of BDD is to align the product vision between all team members. Though having a robot that validates all agreements for free and in no time is a cool thing too! Wouldn't it be nice if it could check contracts between the app and the BE as well? In this video I'm gonna show you how to mock network operations, so your tests will stay blasting fast without compromising on test cov...
BDD in Flutter #3 - Golden TestsBDD in Flutter #3 - Golden Tests
BDD in Flutter #3 - Golden Tests
มุมมอง 3.3K3 ปีที่แล้ว
BDD is UI agnostic. That allows us not to rewrite testing scenarios when details change but the idea stays the same. But what if UI representation is a part of the requirements? Let's say you must test the app's color scheme or check the layout. In this video, I will show you how to superpower bdd_widget_test package with the goldel_toolkit. Completed project: github.com/olexale/bdd_showcase_ap...
BDD in Flutter #2 - adding tests to a completed projectBDD in Flutter #2 - adding tests to a completed project
BDD in Flutter #2 - adding tests to a completed project
มุมมอง 3.4K4 ปีที่แล้ว
If you're considering bringing the BDD approach into the development process and wonder where to start my recommendation is to start with a test for the next feature you're going to implement. But what if your app is already done and now you want to be sure, that new features would not break the existing ones? In this second part of the "BDD in Flutter" series, I'm gonna show you how easily BDD...
BDD in Flutter - how to test mobile apps in a natural languageBDD in Flutter - how to test mobile apps in a natural language
BDD in Flutter - how to test mobile apps in a natural language
มุมมอง 7K4 ปีที่แล้ว
Testing is not an easy topic even for experienced mobile developers. Where to start? How to structure tests? Is there an easy way to leverage the test-first approach? Wouldn't it be easier if you could write tests in a natural language? From my experience, BDD-style tests are intuitive, easy to write, and support. Most importantly, not only developers but project managers, testers, business ana...
AR with Flutter - Image AnchorsAR with Flutter - Image Anchors
AR with Flutter - Image Anchors
มุมมอง 15K4 ปีที่แล้ว
In these short videos, I’d like to briefly introduce you to some augmented reality projects, that were innovative and difficult to implement in the past, and how trivial they are with Flutter and ARKit. In this episode we talk about modern AR and anchors. The plugin: pub.dev/packages/arkit_plugin
AR with Flutter - SensoramaAR with Flutter - Sensorama
AR with Flutter - Sensorama
มุมมอง 4.8K4 ปีที่แล้ว
In these short videos, I’d like to briefly introduce you to some augmented reality projects, that were innovative and difficult to implement in the past, and how trivial they are with Flutter and ARKit. In this episode, we'll implement the "Sensorama" - one of the earliest virtual reality systems. The plugin: pub.dev/packages/arkit_plugin
AR with Flutter - The Sword of DamoclesAR with Flutter - The Sword of Damocles
AR with Flutter - The Sword of Damocles
มุมมอง 13K4 ปีที่แล้ว
In these short videos, I’d like to briefly introduce you to some augmented reality projects, that were innovative and difficult to implement in the past, and how trivial they are with Flutter and ARKit. The first episode is about "The Sword of Damocles" - the first AR experience in the world! The plugin: pub.dev/packages/arkit_plugin
Mobile Apps Testing #2: ApproachesMobile Apps Testing #2: Approaches
Mobile Apps Testing #2: Approaches
มุมมอง 1725 ปีที่แล้ว
How can you create a successful mobile app via failing first, and why does this happen? Let's try to figure out! In this second episode of the "Mobile App Testing" series, we'll talk about testing approaches. Do you like it? Smash like, share, and follow me on twitter - olexale

ความคิดเห็น

  • @ravuruindu6126
    @ravuruindu6126 2 หลายเดือนก่อน

    Can we publish flutter packages in nexus repository. If we can, can you please give me the steps to do?

  • @neiljaywarner7268
    @neiljaywarner7268 3 หลายเดือนก่อน

    Is there an article versiono or transcript or slides by chance? thanks

    • @olexale
      @olexale 3 หลายเดือนก่อน

      Nope. You can check the "mocked_backend" package's example for reference and the code of the package itself for inspiration for the implementation.

  • @neiljaywarner7268
    @neiljaywarner7268 3 หลายเดือนก่อน

    have you seen fakedio approach in marvel api official riverpod example?

    • @olexale
      @olexale 3 หลายเดือนก่อน

      Faking a dio implementation does not allow you to cover other interceptors or validate (de-)serialization logic. Such an implementation is too specific and coupled with the project, which lowers its reusability. Check the "mocked_backend" package on pub.dev. It's a universal implementation of the interceptor approach that you can use in any project with minimal configuration.

  • @lskldev
    @lskldev 3 หลายเดือนก่อน

    Дякую за відео, Олександре! 🇺🇦 Підкажіть, чи можливі відео про види архітектур? Хочу дізнатись як саме будувати додатки краще, бо немає в команді досвідченої людини в цьому напрямку. Чи може знаєте де знаходиться якісна інформація, буду дуже вдячний!

    • @olexale
      @olexale 3 หลายเดือนก่อน

      Вітаю! 👋 Напишіть мені в твітер або лінкедін.

  • @1879heikkisorsa
    @1879heikkisorsa 4 หลายเดือนก่อน

    Nice talk. Highly interested in the "proper" way of excluding the fake 🙂

  • @AnthonyDev
    @AnthonyDev 4 หลายเดือนก่อน

    Great talk! Oleksandr and Anna! What a duo! Cheers from Brazil. 💙

    • @olexale
      @olexale 4 หลายเดือนก่อน

      Thank you 😊

  • @AntonDerevyanko
    @AntonDerevyanko 10 หลายเดือนก่อน

    Nice talk, Alex! I would call it 'bdd test for the beginners' and would highly recommend it to all developers, no matter if they expertise.

    • @olexale
      @olexale 10 หลายเดือนก่อน

      Дякую 🙂

  • @stopaskingme
    @stopaskingme 10 หลายเดือนก่อน

    #top

  • @gbnowak
    @gbnowak 10 หลายเดือนก่อน

    Hi Oleksandr. Is there somewhere I can reach you by PM. I might have a small project you might be interested in.

  • @vikaskumar-uj5ez
    @vikaskumar-uj5ez ปีที่แล้ว

    thankyou @olexale sir for your content of ar with flutter content, i am planning to texturing my app room plane with cloud tile images, what can be the way.

  • @TIANTVPH
    @TIANTVPH ปีที่แล้ว

    Hello sir, do you have an ArCore equivalent video tutorial just like this?

    • @olexale
      @olexale ปีที่แล้ว

      unfortunately, no

  • @samgarg5228
    @samgarg5228 ปีที่แล้ว

    Great video. Just one thing shouldn't we extend LintRule class for pubspec files instead of DartLintRule just for semantics?

  • @kalokola
    @kalokola ปีที่แล้ว

    I wonder this tutorial was uploaded 3 years back. What ana amazing content. Thanks Much. Any more guidelines that I can explore on to make my AR better.

  • @khushbuagrawal5524
    @khushbuagrawal5524 ปีที่แล้ว

    @Oleksandr Leushchenko Your all videos for flutter testing are just awesome. I need your help to understand how I can perform integration testing with bdd and integration testing with golden tests automation. Our project needs end-to-end testing using BDD.

    • @olexale
      @olexale ปีที่แล้ว

      Thanks! If I understood correctly, you want to have E2E golden tests, i.e., golden tests in a real environment. Unfortunately, I'm unaware of how to make the test both golden and integration. Such tests may always fail because of time and notifications in the status bar, and this unpredictability makes it difficult to create proper golden testing. Most platforms for integration testing allow you to do a screen recording. In the tests, you can validate that the user can interact with all controls and see all the important information. If a test fails, you can look at the recording to find out why. I'd advocate for this approach.

  • @illiteratenerd
    @illiteratenerd ปีที่แล้ว

    The best explanation of the ar so far I've come across. Cleared all the fundamental concepts of ar very easily. Impressive playlist. Thanks man .

  • @dxdsdx
    @dxdsdx ปีที่แล้ว

    Amazing story and video

  • @devkaio
    @devkaio ปีที่แล้ว

    Nice. Great content. Didn't know OnePub. Cheers from 🇧🇷

  • @andreygalunec2165
    @andreygalunec2165 ปีที่แล้ว

    Файний доклад і бомбезні футболки!)))

    • @olexale
      @olexale ปีที่แล้ว

      Дякую 🙂

  • @mamdouhalfarra5585
    @mamdouhalfarra5585 ปีที่แล้ว

    Is that your fast writing code, or you use some tool ?

    • @olexale
      @olexale ปีที่แล้ว

      I used the "Presentation Buddy" plugin - marketplace.visualstudio.com/items?itemName=mauricedebeijer.presentation-buddy

  • @nhuyphanmai3657
    @nhuyphanmai3657 2 ปีที่แล้ว

    When I run flutter pub run build_runner watch --delete-conflicting-outputs It renders nothing. Can you help me? I don't know what's wrong...

    • @olexale
      @olexale 2 ปีที่แล้ว

      Would you share the project on GitHub so that I can look?

    • @nhuyphanmai3657
      @nhuyphanmai3657 2 ปีที่แล้ว

      @@olexale I just create the new Flutter project and when i run step "flutter pub run build_runner watch --delete-conflicting-outputs" it's not render counter file in test

    • @olexale
      @olexale 2 ปีที่แล้ว

      @@nhuyphanmai3657 have you added build_runner and bdd_widget_test to the dev_dependencies?

    • @nhuyphanmai3657
      @nhuyphanmai3657 2 ปีที่แล้ว

      @@olexale Yes, I have

    • @olexale
      @olexale 2 ปีที่แล้ว

      @@nhuyphanmai3657 would you share the project on GitHub?

  • @arshadayub6354
    @arshadayub6354 2 ปีที่แล้ว

    Sir how to do this using Ar_core_flutter plugin. Please answer

  • @dennisflood9546
    @dennisflood9546 2 ปีที่แล้ว

    As far as I know SonarQube is adding dart/flutter within their current major release - so in the next or next again minor release.

    • @olexale
      @olexale 2 ปีที่แล้ว

      Oh, that's great! I truly look forward to it 🙂

  • @HashemRC
    @HashemRC 2 ปีที่แล้ว

    Thanks for sharing. your experiences really moves us forward faster

  • @ДенисРебиков-ъ4з
    @ДенисРебиков-ъ4з 2 ปีที่แล้ว

    Thank you for recording, didn't make it to the summit. I think they should make big conferences like this in saturday or sunday, so more people could participate live🙂

  • @HashemRC
    @HashemRC 2 ปีที่แล้ว

    If we use mocks, what functionalities are not covered? what other things we should test, if we use mocks?

    • @olexale
      @olexale 2 ปีที่แล้ว

      All things that you had to replace with mocks will not be tested. That would be platform-specific things (camera, GPS, biometric, etc) as they just don't exist outside of the platform and so are not available in unit/widget tests.

  • @HashemRC
    @HashemRC 2 ปีที่แล้ว

    I wish I was mastered this topics 6 months ago. as you explain them so easily

  • @HashemRC
    @HashemRC 2 ปีที่แล้ว

    Thanks a lot for this video. BDD means we can ignore unit tests? because unit tests should cover behaviors. so we can refactor the code with confidence.

    • @olexale
      @olexale 2 ปีที่แล้ว

      Not really. Indeed you may cover many things in the app with BDD tests, but unit tests might be in hand when you're dealing with libraries or non-UI things that you want to share between different projects/apps. For example, obviously, bdd_widget_test itself is covered with unit tests. 🙂

  • @adbysantos6603
    @adbysantos6603 2 ปีที่แล้ว

    Really great.

  • @qamarhu6975
    @qamarhu6975 2 ปีที่แล้ว

    Plz can you make a video for AR 3d model of resaurants food like burgar or pizza and how to show it with flutter.😪

  • @erivasMASTERQ
    @erivasMASTERQ 3 ปีที่แล้ว

    Bro i need your help

    • @olexale
      @olexale 3 ปีที่แล้ว

      Sure. What's up?

  • @rakhichhettri2641
    @rakhichhettri2641 3 ปีที่แล้ว

    Hi, Thanks for the video. May i ask if you could also do a video with flutter gherkin with integration test package

    • @olexale
      @olexale 3 ปีที่แล้ว

      Hi! Sorry, I don't use flutter gherkin on my projects. Did you know may use this package for integration tests as well? Here is the link for documentation - github.com/olexale/bdd_widget_test#how-to-write-integration-tests

  • @neijaywarner
    @neijaywarner 3 ปีที่แล้ว

    wow nice job

  • @joshuarileymagic
    @joshuarileymagic 3 ปีที่แล้ว

    Hello, So I tried this out but I've got issues with the tracking not being perfect, usually happens when I try to move the phone or tilt it, I'm on an iPhone 12 Pro Max which is strange because that has a lot of tech built for good AR

  • @юсуф-ф9ь
    @юсуф-ф9ь 3 ปีที่แล้ว

    го на русском тоже)

  • @ruchikasuryawanshi1840
    @ruchikasuryawanshi1840 3 ปีที่แล้ว

    Its not working in Android, Is there any way to achieve this in android..

  • @Ali-cb3xt
    @Ali-cb3xt 3 ปีที่แล้ว

    👍🔥

  • @SEGVeenstra
    @SEGVeenstra 3 ปีที่แล้ว

    Okay, so I only understood part of what happened but it looked awesome and I need to learn more about this. Thanks!

  • @matej0909
    @matej0909 3 ปีที่แล้ว

    noice

  • @sameedulhussanasif1456
    @sameedulhussanasif1456 3 ปีที่แล้ว

    Sir will you please also make a video on connecting Unity project with Flutter

  • @adriano_souza
    @adriano_souza 3 ปีที่แล้ว

    I was waiting for 8 months. Please dont stop. How many videos this series will be?

    • @olexale
      @olexale 3 ปีที่แล้ว

      No idea 😅 I'm making videos only when I have something to say. Some folks asked me how to deal with network queries in BDD tests, so I think that might be the next topic for this series. If you're using BDD with Flutter and struggling with any problem - feel free to reach me and maybe I'll record a video about that 🙂

  • @rosameltrozo5889
    @rosameltrozo5889 3 ปีที่แล้ว

    I feel so guilty i'm not testing enough

    • @olexale
      @olexale 3 ปีที่แล้ว

      Don't be. It's hard to start testing your code when you're the only mobile developer on the project as you'll need to find answers to so many non-trivial questions (like where to start at all, how to share code between tests, what to test, etc.). It's even harder when you have a team that believes that testing just slows down the development without giving anything in return. In fact, that was the reason I've created this BDD plugin. BDD itself is a great technique but it requires the team's collaboration. At the same time, Gherkin gives answers to most of the mentioned questions: - where to start? - create a feature file and implement "the app is running" step. - how to share code between tests? - re-use steps. - what to test? - just describe what the app should do. Using this approach my projects have more than 90% code coverage and zero discussions on the "why we're testing?" topic. I hope you'll give it a try 🙂

    • @rosameltrozo5889
      @rosameltrozo5889 3 ปีที่แล้ว

      @@olexale I'll definitely give it a try when I get the chance

  • @francois199
    @francois199 3 ปีที่แล้ว

    How come you don't have to provide an instance of AuthBloc? The method getSignedInUser is called inside the AuthBloc but somehow it doesn't throw an error like "Object/factory with type AuthBloc is not registered inside GetIt".

    • @francois199
      @francois199 3 ปีที่แล้ว

      Nevermind, I think I've found why

    • @olexale
      @olexale 3 ปีที่แล้ว

      Hi! If you're talking about tests - ResoCoder registered AuthBloc in get_it via injection (you may see generated injection.iconfig.dart file), and I configure injections in injection_helper.dart file. You may watch ResoCoder's DDD videos (at least the beginning) - he described everything really well there.

    • @francois199
      @francois199 3 ปีที่แล้ว

      @@olexale Yeah I found out that he uses a condition inside the generated injection file to register certain dependencies only if it's a test environment.

    • @francois199
      @francois199 3 ปีที่แล้ว

      @@olexale Btw I have a question, is it possible to test if a Dialog is open using bdd_widget_test? for some reason I have a pumpAndSettle time out error whenever I try to test if a Dialog is open.

    • @olexale
      @olexale 3 ปีที่แล้ว

      Most probably that’s because you’re using platform-specific dialogs. In order to work around that you may create a DialogService or DialogHelper class that will abstract away platform-specific details, and use Mockito to set its behavior in tests.

  • @whitneytennant
    @whitneytennant 3 ปีที่แล้ว

    great video @Oleksandr, pls make more :)

  • @sipan_4604
    @sipan_4604 3 ปีที่แล้ว

    Hey Oleksandr. Really liked the video and the plugin. Could you please make a tutorial about ArCore work with image anchors, because I was surfing the web for days and havn't found a tutorial about the same topic for ArCore. Thanks.

    • @kishores-ik4zw
      @kishores-ik4zw ปีที่แล้ว

      still arcore sucks bro i just try to create measure app in flutter with ar in ArKit i completed demo app but in arcore i can't because of their limited library

  • @PankajNikam
    @PankajNikam 3 ปีที่แล้ว

    Fantastic video Oleksandr. I tried Specflow in C# and wondered if there is something similar for Flutter. Thanks for the video, please if possible add more videos to this playlist :)

  • @FranWeidt
    @FranWeidt 3 ปีที่แล้ว

    Thank you! How did you manage to show the hint of the latest (and satisfies) package version in your pubspec.yaml?

    • @olexale
      @olexale 3 ปีที่แล้ว

      Using marketplace.visualstudio.com/items?itemName=pflannery.vscode-versionlens extension.

  • @faizalks2989
    @faizalks2989 3 ปีที่แล้ว

    please let me know or guide me or make a video to implement Qibla direction using Ar in flutter.. like the below link qiblafinder.withgoogle.com/intl/en/finder/ar

  • @easazade
    @easazade 3 ปีที่แล้ว

    I have a question. what kind of problems did you face, using bdd_widget_test for Flutter. since it only supports widget testing and none of the native stuff?

    • @olexale
      @olexale 3 ปีที่แล้ว

      Hi! I didn't face any problems with this plugin as it's generating almost the same code I write by myself. BDD approach is all about the real user's interaction with the UI, but at the same time, I use this approach for the development, hence widget tests are a perfect match to have fast development cycles (create a failing test, make it pass, refactor) and getting human-readable tests to validate with the team. While flutter_driver is still beneficial native stuff is too slow to drive the development, it's more about regression testing for the app builds.

    • @easazade
      @easazade 3 ปีที่แล้ว

      @@olexale I agree. So basically what I asked was we still can't do integration testing with this? Which I guess the answer was no. I did a lot of TDD I do solo work all the time and am new to BDD. trying to look at some good content. Figuring it out if it does worth doing it in flutter. Good video ✌️

  • @csi9915
    @csi9915 3 ปีที่แล้ว

    how do we take a picture with the AR objects? Any tutorial on that?

  • @mohammadtalha2336
    @mohammadtalha2336 3 ปีที่แล้ว

    How can i change my syntax color?