Jul 6, 2014

Tweak, Run, Repeat

One of the most frustrating things about Android development has to be the opacity around API interactions.  I'm having a lot of trouble at the moment getting a SearchView in the ActionBar to behave the way that I want it to.

Desired experience: The search bar appears as a search icon when you first open the app.  When you click the icon, it expands into a search text box which covers the entire ActionBar.  As you enter a search term, the list view contents update, magically.  If you rotate the phone, the state should be saved (search text box open with text in it, list view has the same results).

Keeping the search query around is rather trivial, but maintaining the open state of the search view has been frustrating.  And it's frustrating that it's frustrating.  There are 2 different methods I can call to show/hide the search view, one of which is called the unhelpful "setIconified".  Then there's the action modes for the ActionBar menu item, which all behave differently.  I'm not sure what's going on yet, but I'm just ... frustrated!  I can't be the first person to try to do this.  It'd be one thing if there was clear documentation around the different interactions between the different states and settings, or if the official documentation wasn't wrong or if it just worked as expected.

If you consider the time to develop a phone app as being a function of the number of times that you change the code, compile and then run the app -- debugging a problem in the Android source is developmentally expensive.  When it's my own code that I'm attempting to debug, or even not something so closely tied to the Activity creation loop, I can hit break points and spend a little more time thinking through the problem.  This bug has turned into a tweak and run time suck.

Things would be different if a re-run didn't take so long or if the API was better documented or had better control handles for manipulating the state of a collapsible action view.

*This post was written in between compile time loops*

No comments:

Post a Comment


‪some days I remember the lies you told me and i laugh at both of us‬ ‪at me, for wanting so badly to believe you‬ ‪at you, for having t...