Skip to content

Instantly share code, notes, and snippets.

View dylanberry's full-sized avatar
🛠️
Code.Build.Test.Deploy.Monitor.Repeat(); 🥇

dylanberry dylanberry

🛠️
Code.Build.Test.Deploy.Monitor.Repeat(); 🥇
View GitHub Profile
var tabbedPage = new TabbedPage();

tabbedPage.Children.Add(new ViewA());

var navigationPage = new NavigationPage(new ViewB());
tabbedPage.Children.Add(navigationPage);

// selectedTab=ViewB
tabbedPage.CurrentPage = navigationPage;
@dylanberry
dylanberry / StreamNotes-2020-04-18.md
Created April 18, 2020 21:22
Stream Notes - 2020-04-18

Agenda

  • Functional testing
  • Unit testing

Notes

  • Give mfractor kudos for paste class functionality
public static class TaskUtilities
{
#pragma warning disable RECS0165 // Asynchronous methods should return a Task instead of void
public static async void FireAndForgetSafeAsync(this Task task, Action<Exception> handleErrorAction = null)
#pragma warning restore RECS0165 // Asynchronous methods should return a Task instead of void
{
try
{
await task.ConfigureAwait(true);
}

Agenda

  • Build pages for tabbed navigation scenario in test "HelloWorld" project
  • Examine existing UI tests
  • Build new UI tests

What did we do?

  • Looked Prism modules for the first time!
  • Brought our list/detail page into the HelloWorld/Module A project
  • Added new dependencies into HelloWorld solution
  • Explored existing UI Tests - ran successfully

Agenda

  • Fix issues identified in PageNavigationService
  • Write UI tests!

Notes

  • if Visual Studio for Mac will not build/run due to XAMLC issues, clean, delete output and quit/restart VS

What did we do?

  • Fixed (not really) VS XAMLC headache
  • Debugged PageNavigationService, found/fixed an unawaited async call
public class BaseTabViewModel : BaseViewModel, IActiveAware
{
// NOTE: Prism.Forms only sets IsActive, and does not do anything with the event.
public BaseTabViewModel(INavigationService navigationService,
IViewModelServiceProvider viewModelServiceProvider)
: base(navigationService, viewModelServiceProvider)
{
var onIsActiveChanged = new WeakEventHandler<EventArgs>(OnIsActiveChanged);
IsActiveChanged += onIsActiveChanged.Handler;

Agenda

  • Finish rebase
  • Touch-up pull request

Notes

  • Rebase
    • Commits are replayed one at a time
    • Resolving a conflict in a commit may cause cascading conflicts in future commits
    • To complete the rebase process, you must force push
  • Consider different tools - GitKraken

Agenda

  • RateTheMeet!
    • Review
    • Secrets/basic clean-up
    • Commit to public repo
    • Backlog/wishlist

Notes

Agenda

  • Mock services that communicate with the backend

Notes

Tasks