CSLA PropertyInfo Control For Xamarin Forms
CSLA PropertyInfo Control For Xamarin Forms
CSLA PropertyInfo Control For Xamarin Forms
RockfordLhotka
Google Hosting
Service
07JUNE2016
ASP.NETMVCeditcollectionof
items
Averycommonscenarioforlineofbusinessappsistoedita
collectionofitems.Oftenthis
isntabitcollection,justa
variablenumberofrowswitha
fewcolumnstoeditperrow.
TheMVCscaffoldingsupportsthisscenariobymakingiteasyto
createasetofpagesdisplaythelist,createanewitem,edit
anexistingitem,confirmremovalofanitem.Andthis
scaffoldingisquiteuseful,especiallyforscenarioswhereeach
rowofdatahasalotofpropertiestoedit.
Whereitisntsousefulisinanothercommoncase,whereeach
rowofdatahasasmallnumberofpropertiestoedit(andwhere
therearearelativelysmallnumberofrows).Inthiscasemost
userswouldprefertojusteditallthevaluesonasinglescreen,
nothavingtonavigatetothecreate/edit/deletepagesforeach
row,asthatisquiteawkward.
WhatIvefoundisthattherearesome(ok,lots)ofblogposts
andcodesnippetsshowingwaystosolvethisproblem.Muchof
thiscontentdatesbackmanyyears,oftentoMVC2,andshows
what(inmyview)aresomeprettyhackysolutionsinvolving
clientsideJavaScriptthatmanuallycreateshtmlstringsthat
replicate(oftenoutdated)htmlcomparabletothatgeneratedby
MVCinRazor.OthersolutionsuseWebGrid,aseeminglylittle
http://www.lhotka.net/weblog/
1/26
08/06/2016
RockfordLhotka
usedfeatureofMVCthatalsoneedssome(lesshacky)
JavaScripttosupportediting.
Formypurposes,Iwantedsomethingsimpler,moredirect.I
dontmindsomepostbacksyoudgetthosewiththestandard
MVCscaffoldingIjustwanttheusertofeelliketheyarejust
editingthelistofitemswithoutalotofpagenavigation.
Somethinglikethis:
IalsodontmindusingSessioninthiscase,becauseIm
buildingsomethingthatwill,atmost,beusedby0.3%ofour
employeebase,whichiscurrentlyaround600people.Ifwe
growenoughthatscalingisanissuewellobviouslyhave
TothatendIcreatedanewASP.NETMVC5projectinVisual
Studio2015andaddedthefilesinthisgistthatcontainthe
implementation.
TheProjectListControllerservesuptheinitialpage,andaccepts
POSToperationsfromthebrowser.
TheIndexmethoddisplaysthepagewiththecollectiondata.If
Sessionisemptythedataisloadedfromthedatabase,
otherwisethecachedSessiondataisusedtopopulatethepage.
Typicallythismeansthatthefirsttimetheuserarrivesatthe
pagetheyllgetfreshdatafromthedatabase,andonpostback
operationsthedatawillcomefromSession.BasicallyImusing
Sessionasaninmemoryscratchlocationforthedatauntilall
editsarecompleteandtheuserclicksthebuttontosavethe
data.
http://www.lhotka.net/weblog/
2/26
08/06/2016
RockfordLhotka
ThePOSTmethodworksdifferentlydependingonthebutton
clickedbytheuser,handlingadd,remove,cancel,andsubmit
operations.Theoperationisindicatedbythevalueofthe
button,whichflowsintothecontrollerthroughamethod
parameter.IneverycasethePOSTmethodhasthefullcontents
ofthecollectionfromtheUIthatflowsfromthebrowserinto
themethod.
Theaddoperationaddsanew/emptyitemtothecollection,
updatesthestateinSessionandallowsthepagetobe
redisplayed.Thismeansthenewlyaddeditemappearstothe
user,buthasntbeensavedtothedatabase.
Theremoveoperationremovestheselecteditemoritemsfrom
thecollection,updatesthestateinSessionandallowsthepage
toberedisplayed.Thismeanstheremoveditemsarenolonger
displayed,buthaventbeenremovedfromthedatabase.
Thecancel/refreshoperationclearsSessionandredisplaysthe
page,causingthepagetodisplayfreshdatafromthedatabase.
Thesubmitoperationsavesthedataintothedatabase,then
clearsSessiontoensurethatwhenthepageisredisplayedthat
theusergetsfreshdatafromthedatabase(includingthenewly
savedchanges).
TheIndex.cshtmlviewimplementsthepage,relyingonthe
Person.cshtmlviewtodisplayeachrowofdatafromthe
collection.TheIndexviewhasallthebuttonstheusercanclick
totriggerthepostbackoperationstothecontrollerasIjust
described.
ThePerson.cshtmlviewcreatestheeditcontrolsforthe
propertiestheusershouldview/editforeachrow.
ThePerson.csfileimplementsthemodelreallytheviewmodel.
NoticethatithasaRemovedpropertywhichisveryUIspecific,
sothisclearlyisnttheactualmodelyoudeverget/saveina
database.
http://www.lhotka.net/weblog/
3/26
08/06/2016
RockfordLhotka
ThecontrollerhasTODOcommentsindicatingwherecode
shouldgotoinvokethedataaccesslayertoretrieveandupdate
thedatabasebasedontheinmemorycollectionofPerson
objects.
ASP.NETMVC
07June201618:03:58(CentralStandardTime,UTC06:00)
Disclaimer
01JUNE2016
CSLA.NETVersion4.6.400
released
ThisreleaseofCSLA.NETis
focusedprimarilyonenhancing
theexistingXamarinsupport.
ThereisnowaCsla.dlltargeting
PCLProfile111,whichisthe
currentprofileforXamarin.Forms
projectsand.NETCore.
ThereisalsonowaCSLAXamarinNuGetpackagethatincludes
aCsla.Xaml.dllwithsupportforXamarin.Forms.Thisincludes
thesameviewmodelbaseclassesastheotherXAMLplatforms,
andanimplementationofthePropertyInfocontroltailoredforuse
inXamarin.Forms.
@JasonBockaddedevenmoreanalyzersforVisualStudio2015
tohelpdevelopersavoidcommoncodingmistakeswhen
buildingCSLA.NETbusinessclasses.
WenowhavesupportfortheprereleaseofEntityFramework7.
TheptandptBRresourcesforCsla.dllhavebeenupdated.
Otherlanguagesneedupdatesaswellpleasecontribute
ifyouareanativespeaker!
http://www.lhotka.net/weblog/
4/26
08/06/2016
RockfordLhotka
Thereisanewwaytocustomizetheserversidedataportalby
implementinganinterceptorthatisinvokedviathenew
DataPortalBroker.(#564)
Fulldetails:
https://github.com/MarimerLLC/csla/releases/tag/v4.6.400
TheassembliesandpackagesareallavailableviaNuGet.
.NETCore|CSLA.NET|Xamarin
01June201609:33:18(CentralStandardTime,UTC06:00)
Disclaimer
26MAY2016
CSLAPropertyInfocontrolfor
XamarinForms
Thereisnowa
Csla.Xaml.PropertyInfocontrolfor
XamarinFormsaswellas
WPF/UWP,soyoucanusethe
sametechniquetoaccessall
metastateabouteachproperty
fromyourXAML.
Thismeansthat(nowonXamarin
too)youcanbindtotheproperty
value,aswellasCanRead,CanWrite,IsValid,IsBusy,and
variousothermetastatevalues.
UsingthiscapabilityyourXAMLUIcanprovidetheuserwith
immediateandrichvisualcuesastowhethertheuserisallowed
toreadorwritethepropertyvalue,andwhetherthecurrent
propertyvalueisvalid(andifnot,why),aswellaswhetherthe
propertyhasanyoutstandingasyncbusinessrulescurrently
executing.
http://www.lhotka.net/weblog/
5/26
08/06/2016
RockfordLhotka
Inshort,allthegoodnessthatWPF/Silverlight/UWPdevelopers
haveenjoyedoverthepastmanyyearsisnowavailableon
Xamarin!
(orwillbeonceCSLA.NET4.6.400releasesinaboutaweek
thoughyoucantryitnowwiththe4.6.400prereleaseavailable
viaNuGet)
CSLA.NET|Xamarin
26May201615:57:07(CentralStandardTime,UTC06:00)
Disclaimer
25MAY2016
monoDisplayAttributeproblem
repro
TheCSLAPCLthatsupportsXamarinincludesan
implementationofSystem.ComponentModel.DataAnnotations,andthat
includesnumeroustypes,oneofwhichisDisplayAttribute.
ThePCLusestypeforwardingsoatruntimetheplatform's
DataAnnotationsimplementationisused(ifavailable),andthe
CSLAimplementationisonlyusedatruntimeforplatforms
wherethere'snotalreadyanimplementation(WinRTPhoneis
theonlyremainingplatformafaik).
ThereisaproblemwithXamarinhowever,wherealltypesseem
toforwardandworkfineexceptforDisplayAttribute.Theproblem
inthiscaseisthatatruntimeitseemsthatmonoisunableto
locatethecorrectctorforthetype:
"System.MissingMethodException: Method 'DisplayAttribute..ctor' not found.\n
pe type, System.String name) [0x00011] in <filename unknown>:0 \n
at (wrapper
at Csla.Core.FieldMana
Thisexceptionoccurswhentheconsumeappattemptstoaccess
http://www.lhotka.net/weblog/
6/26
08/06/2016
RockfordLhotka
theDisplayAttributeassociatedwithapropertytoretrievevalues
fromtheattribute.Itappearsthatmonoisunabletocreatean
instanceoftheattributeobjectbecauseitcan'tfindthector.
TheDisplayAttributeclasshasonlyadefaultctor,butistypically
initializedusingnamedparameters,suchas:
[Display(Name = "foo")]
Idon'tknowwhatkindofctormonoislookingforwhenitfails,
butitobviouslyisn'tfindingthedefaultctorandthensettingthe
propertyvalue,whichiswhatwouldbetheexpectedbehavior.
ImtrackingthisissueintheCSLAGitHubrepo:
https://github.com/MarimerLLC/csla/issues/579
Stepstoreproduceissue
TheCSLAProjectTrackerreferenceappinmyforkincludesa
reproofthisissue.Toseetheissue,dothefollowing:
1.ClonemyforkofCSLAfrom
https://github.com/rockfordlhotka/csla.git
2.Checkoutthe505xamarinbranch:
https://github.com/rockfordlhotka/csla/tree/505xamarin
3.Openthe\Samples\ProjectTracker\ProjectTracker.sln
solution
4.BuildthesolutionitllpulldowntheCSLA.NETframework
fromNuGet
5.Setabreakpointinthe
XamarinFormsUi.ViewModels.ProjectListclassasshown
here
6.SetthestartupapptoProjectTracker.Ui.Xamarin.Droid
7.Runtheappindebugmode(onanemulatorordevice)
http://www.lhotka.net/weblog/
7/26
08/06/2016
RockfordLhotka
8.OnthefirstscreenclicktheAllProjectsbutton
ThatllattempttoloadtheProjectListpageandProjectList
viewmodel.Atthispointtheexceptionwilloccurandyoullend
uponthebreakpointbecauseofthefailuretocreatean
instanceofProjectInfo,butthatfailsbecausemonocantcreate
aninstanceofDisplayAttribute(usedonsomepropertiesinthe
ProjectInfoclass).
CSLA.NET|mono|Xamarin
25May201612:51:26(CentralStandardTime,UTC06:00)
Disclaimer
20MAY2016
ctorbuginXamarin/mono?
Imighthavefoundabuginmono,butwanttoseeifanyone
thinksI'mmissingsomething.
TheCSLA.NETframeworkhaslongincludedanimplementation
oftheSystem.ComponentModel.DataAnnotationsnamespacefor
platformswhereMicrosoft/Xamarindidntprovidethat
functionality.ThesedaysIthinkthatisonlyWindowsPhone8.1,
butthatincludesPCLProfile111(whichiswhatXamarin
currentlytargetsaswell).
http://www.lhotka.net/weblog/
8/26
08/06/2016
RockfordLhotka
OfcoursetheCSLAimplementationincludesthe
DisplayAttributeclass,whichisusedtodecoratepropertiesin
consumingclasseslikethis:
[Display(Name = "blah")]
That"blah"valueisahumanreadablename/labelfora
property.
Becausemonoactuallyprovidesa
System.ComponentModel.DataAnnotationsimplementation,my
PCLusestypeforwardingsoatruntimethePCLimplementation
isignoredinfavoroftheplatformspecificimplementation
providedbymono.Forexample:
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.ComponentModel.D
ThisworksgreatonallplatformsexceptXamarinAndroid/iOS
wheremonothrowsanexceptionbecauseitcan'tfinda
matchingconstructor.
ThethingisthattheDisplayAttributeclasshasonlythedefault
constructor.ThesyntaxbeingusedtosettheNamepropertyof
theattributeissupposedtousethedefaultctor,andthenthe
Namepropertyisexplicitlyset.Thisisarelativelyoldfeatureof
C#butIkindofsuspectmonohasabugaroundthisarea,as
itseemstobelookingforactorthatacceptsaparameterwhen
itshouldusethedefaultctor.
mono|Xamarin
20May201615:40:28(CentralStandardTime,UTC06:00)
Disclaimer
26APRIL2016
http://www.lhotka.net/weblog/
9/26
08/06/2016
RockfordLhotka
ThoughtsfromaWindows10user
Theresalotofspeculationat
themoment,mostlyIthinkfrom
thetechpress,thattheresno
futureforWindows10Mobile
(akaWindowsPhone).Tothe
pointthatTerryMyerson
apparentlyreleasedastatementtoclarifythatMicrosoftis
committedtomobileformanyyears.
OverthepastcoupleyearsIvebeenincreasinglycriticalof
Microsoftsmobilestrategyaswellitishardnottobewhen
theplatformhassuchlowmarketshare,theresbeenalackof
flagshipdevicesreleased,andtheresstillamajorissuewith
apps(thatdontexistorthatarequitepoorcomparedto
iPhone/Androidversions).
SoatthebeginningofthisyearIthrewinthetoweland
switchedtotheiPhone.Thiswasaftertalkingtoalotofpeople
inpersonandviatwitteraboutwhethertogoiPhoneorAndroid.
TheoverwhelmingadvicewasthatifyouliveintheUSyou
shouldgoiPhone,soIdidexactlythat.
AfteracoupleweekswiththeiPhoneIwroteacomparison
betweenWindows10MobileandtheiPhonefrommy
perspective.ImselfishImlookingforagoodanswerforme,
somyblogpostwasaboutmeandmypersonalexperience.
AfteracouplemoremonthsIrealizedthatthisisarealtradeoff,
becauseWindows10Mobiletheoperatingsystemismore
consistentandpolishedthaniOS,buttheappsontheiPhone
arealmostuniversallysuperior.
AtthatpointIthoughtIdtryAndroid.Thiswasrightafter
MicrosoftBuild2016,whereitseemedliketherewasalotof
loveforAndroid,andwhereIencounteredawholelotofmy
peerswhowereincredulousthatIhadaniPhoneinsteadofan
Android(wheretheywerelastfallwhenIwassolicitinginputI
http://www.lhotka.net/weblog/
10/26
08/06/2016
RockfordLhotka
havenoideaIbegintosuspectthatpeopleonlyadvocatefor
theirplatformwhenyouhavetheotherplatforminyour
pocket).Basically,someoftheiOSfrustrationsand
inconsistencieswerebuggingmeenoughIwantedtolook
elsewhere.
IdidntevenlastacoupleweeksonAndroidthough.Iboughta
OnePlus2ahighenddevicewithverygenericAndroid.It
turnsoutthatgenericAndroidprettymuchsucksmuchlike
genericLinux.Youneedtospend(inmyexperience)hoursand
hoursandhoursresearchingandtryingdifferentlaunchers,lock
screenapps,emailapps,calendarapps,contactapps,etc.Just
togetbasicfunctionalitythatworksoutoftheboxintheiPhone
andWindows10.O.M.G.Idontunderstandhowpeoplecan
wastethatmuchtimejustgettingthebasicstoworkontheir
phones!?!
NowImbacktoWindows10withaLumia950xl.AndIm
happy.
IkeephearinghowWindowslackspolish.Clearlythis
statementisbeingmadebypeoplewhohavenotactuallyused
Windows10,iOS,andAndroidbacktobacklikeIjustdid.In
somewaysiOSmighthavemorepolish,butitisfar,farless
consistentthanWindows,soIgivetheOSpolishnodto
Windows10.Androidisntevenintherunningithasnopolish
orconsistencythoughmaybewithanothermanyhoursof
researchandtestingIcouldhavefoundalauncherthatIliked?
ThatsnothowIwanttospendmylife.
IalsokeephearingabouttheWindowsappgap.Thatis
obviouslyarealproblem.Itisabsolutelythecasethatthe
iPhonehasalotmoreapps,andalmostalltheappsare
superior.ItisalsothecasethattheAndroidappsareplentiful,
buttheygenerallylooklikecrapcomparedtotheiriOS
counterparts.ButIllgiveittoAndroidthat,thoughitsappsare
inconsistentandoftencartoonish,theyarefullfeatured,unlike
Windowsapps.
http://www.lhotka.net/weblog/
11/26
08/06/2016
RockfordLhotka
Oneothernoteonapps:Androidisclearlydesignedtoworkwell
ifyouareaGoogleuser(mail/calendar/contacts)anditispretty
halfbakedforpeoplenotonGoogle.IcantsayIsupportthe
EUgoingafterGoogleanymorethanIdidwhentheywentafter
MicrosoftsolongagoIthinkthatsjustdumbbutatthe
sametime,Iunderstandtheirconsistentviewhere,because
GoogleisusingAndroidtodriveusageandlockinaroundtheir
cloudserviceofferings,notunlikewhatMicrosoftdid20years
agowithWindows.
Finally,IkeephearinghowWindowsphonehardwareisinferior.
IevenheardthatfromsomeoneatMicrosoft.Imskeptical.Itis
truethattheiPhone6sisareallynicedevice,andIlovethe
fingerprintunlockfeature.Androiddevicequalityvariesalot,
buttheOnePlus2isprettynice(ifabitheavy)andhasa
fingerprintreader(ifyoucanfindalockscreenappthat
supportsit).TheLumia950isnicerandlighterthantheAndroid
devicesIveseenandused(includingtheSamsungones).But
IllgrantthatitisntasniceastheiPhone.Attheendoftheday
though,Ithinkallthreeplatformshavehardwarethatare
basicallyinthesameballpark:reasonablystylish,light,fast,
withdecentbatterylife,andgreatcameras.Ifitwasjustdown
tohardwaremyrankingwouldbeiPhone6s,Lumia950,
SamsungAndroid,otherAndroidinthatorder.
AtthispointthoughIllremindyouthatImselfishhereIm
afterasolutionforme.
ThatmeansitcomesdowntoiPhonevsWindows10Mobile
theAndroidOSistoounpolished,clumsy,andinefficientand
itsappsaretoougly,inconsistent,andcartoonish.Itisclearly
thecheapestplatform,andyougetwhatyoupayfor.Imwilling
topaytogetamoreproductiveexperience.
Andattheendofthedaythereareonly3appsthatdontexist
ordontworkonWindowsthatIactuallyneed:Swarm,Waze,
andtheParrottBebopappformydrone.
MybankdoeshaveanapponiPhone/Android,butitsucks
http://www.lhotka.net/weblog/
12/26
08/06/2016
RockfordLhotka
andsonothavingitisntreallyaloss.Tosolvemybankapp
issueIneedtoswitchtoabetterbank,notadifferentphone.
Iweighedthevalueofthose3appsagainstWindows10smore
polishedandconsistentOSexperienceandIconsideredthat
SiriislikeCortanasdullardoldersister(yes,Siriisreallyan
idiotcomparedtoCortana,andCortanaontheiPhoneis
crippledcomparedtoWindowsorAndroid).
UltimatelyIvedecidedthatIdrathergowiththebestOSona
regularbasis.InmycaseImfortunateenoughthatIcancarry
asecondphone(sansSIM)soIcanstillflymydroneitjust
needstheappandwifiafterall.ThatalsogetsmeWazeand
Swarm,becausetheyalsoworkoverwifi,andmyLumiaworks
greatasawifihotspotwhenImoutandabout.
Attheendoftheday,untilFoursquare,Google,andParrot(and
mybank)gettheirheadsoutoftheir@$$sIamworking
aroundthemviaatwophonesolution.
Butmostimportantly,ImhappyusingWindows10andCortana
formy99%usecaseof
email/calendar/phone/text/messaging/Office/etc.
Andfwiw,IthinkthecontinuedrapidadoptionofWindows10
itself(onmySurfaceandDesktopforexample)willdrivemore
andmorecompaniestocreateUWPappsperhapsnotinitially
forthephone,butatleastforthe300million(andclimbing)
peoplerunningWindows10.Thethingis,onceyourapprunsin
UWP,gettingtothephoneisaprettysmallstepandone
companieswouldbefoolishnottodoforsuchlittleeffort.
Android|iOS|Windows10|WindowsPhone
26April201615:46:05(CentralStandardTime,UTC06:00)
Disclaimer
14APRIL2016
http://www.lhotka.net/weblog/
13/26
08/06/2016
RockfordLhotka
WindowstoiPhonetoAndroid
EarlierthisyearIembarkedonanadventure.Iwasfrustrated
withthelackofappsonWindowsPhone(Windows10)andI
keephearinghowmagicaltheiPhoneisforpeople.Aftera
coupleweekswiththeiPhoneIwroteacomparisonblogpost:
WindowsPhonevsiPhonecomparison
MorerecentlyIwroteaboutmyongoingfrustratingwiththe
iPhone,justifyingwhyIwasgoingtotryanAndroiddevice:
iPhonefrustration
Imtryingtogiveeachplatformafairtry,butafterafewshort
dayswithAndroid(IhaveaOnePlus2soveryvanilla
Android)Imalreadyfindingthatofthethreeoperatingsystems
Androidistheworst.ItiskindoflikedesktopLinuxcobbled
togetherbyalotofpeoplewhodontshareacommonvision,so
everythingsortofworks,butnothingfeelsconsistentandmost
thingsdontseemprofessionalorpolished.Kindofthediametric
oppositeoftheiPhone.
Ivealwaysthoughtthatyougetwhatyoupayfor,andIthink
Androidreinforcesthatworldview.Itischeap,thedevicesare
cheap,theappsarefreeorcheap.Andtheyallfeelcheapwhen
comparedtoWindows10oriOS.Butifyourphoneisnta
budgetarypriorityinyourlife,yetyouneedasmartphone,then
Androidisprobablytherightchoicewhichexplainswhyitis
themostpopularOSglobally.Clearlythemajorityoftheworlds
populationeithercantaffordaprofessionalphone/experience
(whichislargelytrueofcourse),ortheydontvaluetheirown
timeasmuchasmoney,sotheyarewillingtoinvestthattime
dealingwithAndroidinsteadofspendingtheextramoneyup
fronttogetaniPhoneorWindowsPhone.
NoticethatImstillputtingWindowsPhoneinthisdiscussion,
eventhoughithasalowUSmarketshare,andonlyaslightly
betterglobalmarketshare.Inmyexperiencewiththethree
platformsthusfar,myconclusionisthattheoperatingsystems
http://www.lhotka.net/weblog/
14/26
08/06/2016
RockfordLhotka
ranklikethis:
1.Windows10
2.iOS
3.Android
ThephysicaldevicesIvebeenusingranklikethis:
1.iPhone6s
2.Lumia950xl
3.OnePlus2
Theavailabilityandqualityofappsranklikethis:
1.iOS
2.Android
3.Windows10
Ifyouassignnumericscorestoeachcategory,youendupwith
thefollowingoverallratings:
iPhone(8)
Windows10(6)
Android(4)
SoatleastinmyopinionbasedonhowIusemyphoneand
whatIexpectoutofitIprobablyshouldkeepusingmy
iPhone,andkeepgrumblingabouthowdumbSiriiscompared
toCortana.OrIshouldgobacktoWindows10anddealwith
thesadrealitythatitdoesnthaveworkableWaze,Swarm,or
bankingapps.
AlotofpeopleIknowdocarrytwophones(personalandwork).
Imsortofconsideringcarrying2devicesaWindowsphone
withaSIMasmyprimary(soIhaveCortanaandalltheother
stuffIloveaboutWin10)andaniPhonewithoutaSIMtorun
theappsthatdontexistonWin10,becausetheyallrunover
WiFi.Justalittletwistonthework/personaldualphonescenario
butinmycaseIllhaveonephonethatsfuntouse(Win10),
http://www.lhotka.net/weblog/
15/26
08/06/2016
RockfordLhotka
andonephonethatrunsappsthatarefuntouse(iPhone).
14April201608:53:23(CentralStandardTime,UTC06:00)
Disclaimer
08APRIL2016
iPhonefrustration
EarliertodayItweetedthatIhave
anAndroidphoneonorder,
becauseImfrustratedwithmy
iPhone.
Notsurprisinglythatresultedin
peoplewonderingwhyIm
frustrated.
MyiPhoneexperiencestartedin
midJanuarywhenIswitchedfrom
Windows10MobiletoiOSbecauseIwasfrustratedbythelack
ofappsonmyWindowsphone.AcoupleweekslaterIwroteup
myWindowsPhonevsiPhonecomparison.Afteracouplemore
monthsofusingtheiPhoneIstandbywhatIwroteinthatpost
Windows10isfarsuperiortoiOS,butthelackofappson
Windowsphonesiscrippling.
ButtherearesomethingsthatreallybugmeabouttheiPhone
frustrationsIfaceliterallyeveryday.Mostnotably:
NolivetilesmandoImisslivetiles!
CortanaontheiPhoneiscrippled,andSiriisanidiot
ThebacknavigationconceptontheiPhoneisridiculously
inconsistentandpoorlyimplemented
Theconceptofsharingfromoneapptoanotherisrobust
oniOS,butisalsoridiculouslyinconsistentandconvoluted
SomanythingsthataresimpleonWin10Mobilerequirea
lotmoretaps/swipes/effortoniOS
http://www.lhotka.net/weblog/
16/26
08/06/2016
RockfordLhotka
IknowthatAndroidwontsolveoraddressalltheseissues.
Maybeitwontaddressanyofthem,IwontknowuntilItryit.
AndIsaythatbasedonmyexperienceswitchingtotheiPhone
everybodyprioritizesdifferentfeaturesandabilitiesdifferently,
soIfinditvirtuallyimpossibletogetattherealityofeachOS
bytalkingtootherpeople.
HereswhatIthinkIwillfindonAndroid:
Nolivetilesstillmynumber1issuewithanyotherphone
OS
CortanaonAndroidisreputedtobemuchbetterthaniOS
almostasgoodasWindowsandthenewWindows10
AnniversaryEditionmobileintegrationfeaturesworkwith
AndroidaswellasWindows10Mobile(butnotiOS)
Androidhasabackbutton,soIamhopefultheback
navigationexperiencewillbemoreconsistentthaniOS
(whichis,frankly,averylowbar)
Idontknowwhattoexpectaboutinterappsharing,butI
suspectAndroidisnobetterthaniOS(andletsbehonest,
thisisalsoaweakspotforWindowsphones)
IalsodontknowthatAndroidwillbeasoptimizedfor
commontasksasWin10,butIcantimagineitwillbemore
awkwardthaniOS
Attheendofthedaythough,mythreedailyfrustrationsare
simple:
1.Livetiles(andthelackthereof)
2.Cortana
3.Consistentnavigationpatterns(especiallytheback
navigationconcept)
Androidseemstohaveagoodchanceofaddressingtwoofthe
three,soperhapsIllbehappierdaytodaythanIamwiththe
iPhone?
Iguesstimewilltell.AtleastIllbeabletoknowfirsthandhow
allthreemobileoperatingsystemsworkforme.
http://www.lhotka.net/weblog/
17/26
08/06/2016
RockfordLhotka
WindowsPhone
08April201614:58:49(CentralStandardTime,UTC06:00)
Disclaimer
On thi sp a ge . . . .
ASP.NET MVC edit collection of
items
CSLA .NET Version 4.6.400
released
CSLA PropertyInfo control for
Xamarin Forms
mono DisplayAttribute problem
repro
ctor bug in Xamarin/mono?
Thoughts from a Windows 10
user
Windows to iPhone to Android
iPhone frustration
Sea rch
Search
Arc hiv es
June, 2016 (2)
May, 2016 (3)
April, 2016 (4)
March, 2016 (1)
February, 2016 (7)
January, 2016 (4)
http://www.lhotka.net/weblog/
18/26
08/06/2016
RockfordLhotka
19/26
08/06/2016
RockfordLhotka
http://www.lhotka.net/weblog/
20/26
08/06/2016
RockfordLhotka
21/26
08/06/2016
RockfordLhotka
22/26
08/06/2016
RockfordLhotka
http://www.lhotka.net/weblog/
23/26
08/06/2016
RockfordLhotka
24/26
08/06/2016
RockfordLhotka
MonoTouch
MOslo
News
Programming
Service-Oriented
Silverlight
Surface
UWP
WCF
Web
Windows 10
Windows 8
Windows Azure
Windows Forms
Windows Phone
WinRT
WomenInTech
Work ow
WP7
WP8
WPF
Xamarin
Xbox
Zune
Abo ut
http://www.lhotka.net/weblog/
25/26
08/06/2016
RockfordLhotka
Sign In
http://www.lhotka.net/weblog/
26/26