We've Moved

THIS BLOG HAS MOVED!

It can be found at the new website: http://fifteen15studios.com/blog/

Personal Blog

Want to know more about the man behind the programs? Check out my personal blog: http://havens1515.blogspot.com

Tuesday, December 31, 2013

Auto Respond and Bluetooth

I received a request a few days ago for a feature that I never even thought of. I don't use Bluetooth, so I often forget about it, but this user wanted the option to toggle Auto Respond when the phone connects to a Bluetooth device.

I thought it was a great idea, so I tried it out. It was actually extremely easy to implement, and now I'm working on building in some extra options for it, similar to the options for docking the phone. It might be a bit before it's done though.

I am going to be releasing this feature and its options as beta first, play around with them for a while to ensure that they work, and then release it. If you would like to help test this new feature, you only need to do a couple things:
As always, please let me know if you have any issues. If you run into a crash bug (even though I don't expect you to) make sure to hit the "report" button so that I can get detailed information about where the bug occurred in my code.

If you want to opt out of the beta builds at any time, for any reason, go to that same link and you can opt out. These links have been posted to my community as well. If you are running a beta build and want to return to a production build after opting out you will need to uninstall the app and reinstall it, or wait until a new production build is released. This also is true of any Android app and is a limitation posed by Google, not me.

Friday, December 27, 2013

Updates and extras

Auto Respond

I pushed some new releases of Auto Respond over the past week or so.

One of them was a fix for the incompatibility between Auto Respond and Google Hangouts when SMS is enabled in Hangouts. The SMS message was never getting to Auto Respond when Hangouts was enabled. Once I figured out how to get the message to Auto Respond properly, the messages were displaying in the wrong order (reply was displayed before the original received message) so I had to figure that out as well.

The other update was to change the look of the "Preset Messages" screen. I noticed that the way that that list of messages works is completely different than the way that the list of schedules works. The messages have a press to set, and a long-press to get to the options. The schedules had buttons for all of it. So I changed the messages screen to resemble the schedules screen.

I also updated the screenshots in the store listing. A lot of the previous shots were from my phone, which is rooted and ROMed, so there were things in the screenshot that are not possible to have on a stock ROM of any sort. I used an emulator in the SDK to take new screenshots that were from a stock system.



Business

Also, as you may have noticed, I changed the look of the blog a lot. During November I had the purple theme for epilepsy, prior to that I had a generic theme that I had modified slightly. I have changed the layout to reflect my latest logo, which is displayed at the top.

I am still doing a lot of work in the background, so unfortunately I haven't had a lot of time to work on existing products. I am working with a friend of mine to get some really cool stuff done, and I can't wait to be able to share some specifics with all of you; Unfortunately, it will probably be at least a few more months before I can really get into details. I am hoping to have a launch date around summer time, but that will depend on how much free time my friend and I have to work on all of this as well as how quickly some of the other necessary paperwork can be processed.

What would help immensely is some financial help. There is a link on the left to make a donation via paypal. If you have Auto Respond Free, it would help if you would purchase the Pro version. Not only will it help my financial burden, but you will get some really nice extra features as well. All of this money (donations and purchases) will go to supporting development and paying for some other costs that I am incurring right now for the project that I am working on. Also, word of mouth is the best advertising for anything. Please tell your friends about my apps, as I'm sure that a lot of people will like them, and leave some positive feedback in the Play Store listing. More positive feedback = more visibility and more downloads.


Happy Holidays!

I hope that you are all enjoying the holiday season, and I will continue to post updates as often as I can.




TL;DR: a few Auto Respond updates, lots of behind the scenes work, need some funds for future projects.

Thursday, October 31, 2013

Epilepsy Awareness Month

This blog has been turned purple for epilepsy awareness month.

This year for Epilepsy Awareness month I will once again be donating all proceeds from Auto Respond Pro purchases to the Epilepsy Foundation.

The Auto Respond notification icon (and anywhere else that I could change it programmatically) will automatically turn purple starting tomorrow (November 1st) and will remain purple until the end of November. On December 1st, if you would like to keep the purple icon you can do so by enabling it in the options, otherwise the icon will return to its normal green. The option to change the icon color will be disabled during November.

As many of you know from reading my blogs in the past, I was born with epilepsy. The epilepsy foundation has helped me a lot throughout life, and they continue to help me and others through hardships. If you would like more detail on that, check out my personal blog which is linked at the top of this page.

Last year I posted one fact about epilepsy, on all of my social media sites, every day in November. I have been extremely busy lately, officially turning Fifteen 15 Studios into a business, changing jobs, and doing many other things, so I won't have time this year to research more facts to post (or to setup the automatic posting of those facts like I did last year.) I may however post the facts that I posted last year. I have them all in a word document, and will likely post them somewhere before the end of November.

If you would like to make your own donation to the epilepsy foundation, you can give to the national chapter at this website:
http://www.epilepsyfoundation.org/give/index.cfm
Or you can give to my local chapter here:
http://www.epilepsyuny.org/donate.htm

Auto Respond can be found in the Play Store here:
https://play.google.com/store/apps/details?id=com.havens1515.autorespond

Any additional donations are much appreciated!

You can also find a list of facts about epilepsy (that I posted to my social media profiles last November) here:
https://dl.dropboxusercontent.com/u/4658512/Seizure%20Facts.docx

Wednesday, October 23, 2013

Status Updates

I know it's been a long time since I've posted anything, so here's some updates.


Auto Respond

I released an update a few weeks back to Auto Respond Pro which allows you to respond to numbers which are not in your contact list. I still haven't built this into AR Free, but it will be there.

I'm working on theming AR purple for epilepsy awareness month in November. For those of you who were around last year, you will probably remember that I changed the icon to purple last year, and donated all November proceeds to the Epilepsy Foundation. I am planning on doing the same this year, but I also want to theme the ENTIRE app in purple. It's a lot of work so I don't know if it'll be done in time, but I'm doing my best. I'm also working on changing the icon programmatically, so that I don't have to put out an update to change the launcher icon. If you have any experience with theming apps, feel free to reach out to me. I can use all the help I can get.

Today Auto Respond Pro got its 100th download! I know that doesn't sound like a lot compared to other apps, but it's something that I'm proud of anyway. The free version has over 2,000 downloads, so there's a little perspective of free vs. paid.


Super Secret Project

Some of you may recall that I'm working on a secret project, and have been for a while. A lot is happening with that too. I can't provide any specifics yet, but here's some generic updates.

It officially has a name now, which is not in use by any other tech companies or software companies that I came across. I've got some friends working on design work (an icon, logo, etc.) based on the current name. I did some database work, which is going to make the app REALLY flexible and easily updated without having to update the whole app. I've got the basic UI designed and we have a list of features that we want to include in the initial release, as well as a list of LOTS of ideas for future additions.

I've got someone working on a website for me, which will likely be a huge focus of this project. The website will be where people go for a lot of setup and some more functionality, but the app will be an essential part of making it all come together successfully. I'm supposed to have a meeting before the end of the week to discuss what exactly needs to be done with the website, and hopefully see some initial progress and design work.

This project has been my main focus over the past few months. I'm learning a lot in this process, and I've got a LOT of things planned for it. I can't wait to get the name legally set in stone, and get a base product setup so that it doesn't have to be kept so secretive. (I'm holding back all details because I don't want someone stealing my idea or my name.)

I've got a plan for monetizing the project, so that part is taken care of as well. I think the idea is unique enough, functional enough, and desirable enough that I can bring in some good clients once the idea is presented. The app and website will be 100% free for users, and money will be made from other clients. I'm sure that not knowing the premise behind the app this all sounds very vague, but there is a plan and it includes no cost to the end user.


General Updates

I have decided to officially re-brand as "Fifteen 15 Studios" instead of "1515 Studios". My design guys are working on some new designs for that as well. (If you would like to try your hand at designing a logo for me, it would be much appreciated. I want to get a bunch of designs to choose from.) I'm going to do some DBA paperwork to officially turn Fifteen 15 Studios into a company. I've got some legal documents written up (a non-compete and non-disclosure agreement) for anyone who joins in on the current project, but I need an official company name to associate with those documents.

The new name will be official once I decide on a logo design that I like, and obviously will be legally official once the DBA paperwork is completed. I have most of the logistics of the switch worked out already, and just need to put some of the technical aspects into place.

All-in-all, despite my lack of blog updates, there is a lot going on behind the scenes with me, my apps, and my soon to be company. I'm excited for things to come, and I hope that all of you are as well.

Saturday, August 10, 2013

Out of Office

I will be "Out of the office" so to speak for the next week, so hopefully no bugs spring up in Auto Respond.

I've released a couple of updates this week, and so far I have not gotten any crashes or other bug reports from the latest version.

I will have no access to internet for most of the week, no access to a computer, and extremely limited access to cell service and/or text messaging. Therefore, I cannot make any changes/updates to my apps for the next week.

If you have problems with an app, please email me and I will respond ASAP when I return.

For more details on what I will be doing for the following week, check out this post on my personal blog:
http://havens1515.blogspot.com/2013/08/20-years-at-camp-eagr.html

Friday, August 2, 2013

Coding session tomorrow

I plan on having a fairly long coding session tomorrow, and I've got some goals that I would like to accomplish during this session:
  • Google has added an item to the support library to allow the "action bar" in apps running on Android 2.2+. So I plan on adding that to Auto Respond for Android 2.2 and 2.3.x.
  • I want to get a solid foundation set for Google Games in Tic Tac Toe. I don't know if I can get it working completely in one day, but I want to at least get a good start.
  • I want to get some actual working features built into my top secret app project
    • Right now there's only a design and some basic navigation, I want to create some REAL functionality this weekend. 
    • I spent some time yesterday making some changes so that it's more flexible, and can hopefully have changes made to content in the app without releasing a new version of the app. Instead, it will download the new content from an outside source, and I think I can do this directly through the Play Store.

That may seem like a relatively short list, but I think it will be a lot of work. Not so much Auto Respond, but the other two could be some serious time.

Neither of these updates (Auto Respond or Tic Tac Toe) will be released before August 18th. I will be out of town from the 10th to the 17th of August and I don't want to release new features before then, because new features mean potential for new bugs. I don't want to potentially introduce new bugs while I'm unavailable to fix them.

Friday, July 26, 2013

Pirates Avast!

Apparently Auto Respond has become popular enough for people to start pirating it. I know this partly because they're pirating an old, buggy version.

The version that is being pirated was released back in late February, and was replaced less than 2 weeks later with a much more stable version. Even though that version is 5 months old now, it's still topping the charts on my list of what version people are using on Google Analytics. Yet, there are 0 copies of it still out there according to my developer console. There's only 1 explanation for that... pirates!

Some of these pirates even have enough balls to click the "needs improvement" link in the app (which sends me an email with information about the app version they are running, the Android version they are running, and their phone make and model) and then tell me that my app is crashing, or has other problems. My response to that from now on (to users running this version) will be "buy my app instead of stealing it and you won't have any issues!"

All of that being said, I've gone on a hunt to find the source of this illegally distributed file. So far my hunt has been fruitless, but if you find my pro app out there in the deep dark corners of the interwebs being offered for free PLEASE LET ME KNOW! It might just be called "Auto Respond" and not "Auto Respond Pro" as it is now, but if it doesn't specifically state "Auto Respond Free" it's the pro app.

I don't make a lot of money from my apps, and I don't think I'm asking an unreasonable amount for the app (in fact, until recently it was as low as I could possibly go... $.99) so please help me find and stop this.

Tuesday, July 23, 2013

Background

I was just thinking about things... and I came to realize a few things.

To start, I want to give you a background on me.

In the Beginning

I first used a computer when I was about 8 years old. My mom brought home a computer from work, which was DOS based. She taught me some basic commands, and suddenly I was able to navigate my way around DOS... sort of.

Then she brought home a pile of floppy disks and said something like "someone at work gave me these disks and said they have games on them. Plug them in and see what's on there." So I did... and to my disappointment, most of the disks were password protected. But that didn't stop me. I spent some time guessing passwords. They were educated guesses, but guesses. Don't ask me what my exact process was... I was 8, and I don't remember those details. Eventually I figured out one of the passwords, and was able to play the games on that disk. So I tried the password on all the other protected disks, and it worked on roughly half of them.

That day I fell in love with computers. I knew that I wanted to do something with computers "when I grew up". As time progressed I got more and more into video games, both console and PC, and wanted to be a programmer. Specifically, a game programmer (like so many other kids in my generation.)

High School

There wasn't much in the way of Computer Science classes in my high school... we had a Visual Basic class and a C++ class, but most of the time they never happened because not enough people signed up for them. One of those years though, I took the C++ class. Unfortunately, it did nothing for me because my teacher was "learning as we were" and I spent most of my time copying code from "the smart kid".

Community College

So I went to community college and started as a CS major. I took "Introduction to Object Oriented Programming using Java" - the first programming class in the major - and I hated it. Again, a big part was my teacher. She could barely speak English, she actually spent 1 entire class writing Visual Basic code on the board, just to erase it and tell us "Oh, forget all of that, that was the wrong programming language." I failed that class and retook the class the next semester with a different teacher. That second semester, I also took Calculus 2. I still hated Java, and I got a 22 on my first calc 2 test... so I switched majors to Computer Technology - a hardware major. (The highest level math required for CT was calc 1, so I didn't have to pass that calc 2 class for the new major.)

College

I stuck with that major until the end of MCC, and transferred to RIT. The major there was Computer Engineering Technology - still a hardware major, but we did out fair share of software too. At RIT I finally started to grasp the concept of Object Oriented Programming, because I finally had a good teacher. It was C++ that finally got me to understand, but I was only doing command line (DOS) programs. I took some of those programs above and beyond, as I finally understood what I was doing (one project eventually turned into my tic-tac-toe game for android.)

After doing tic-tac-toe, I decided to really challenge myself and make a Euchre game. For those who don't know the game of Euchre, it's a card game with a TON of logic involved. The game was 1 human player and 3 computer players (Euchre is most often played as a 4-player game, although variations exist for anywhere from 3 to 7 players.) I got Euchre working as a playable game, and started adding more options to it - like some of the regional rules or "house rules" that exist in variations of the game.

Beyond College

After college, I decided to make Euchre into a Windows program instead of a DOS program. Doing my first GUI was interesting. There was definitely a learning curve, especially considering I was learning from the internet and sample code. I decided to use C# instead of C++ because it seemed to have a lot more options for GUI programming. This meant that some of my code needed to be changed slightly for the new language. Since C# is based on C++, most of the changes were minor. The hard part was converting the command line output to a GUI. I played with a few other programs for a while, nothing else really got too far.

Android

Then I got into Android. I got my first Android phone in 2010, and got REALLY into the modding community - rooting, ROMs - and basically everything Android. I paid for Tasker, and eventually made some profiles in there for responding to text messages while my phone was in a car dock. (I was taking an hour and a half drive to Buffalo once a week for work, so it helped for that trip.) Then Tasker released App Factory, which allowed you to use "scenes", which were basically GUI elements, together with profiles to create an actual app and an apk file which other people could install on their phones. This is where the first ever version of Auto Respond came from.

After realizing the visual limitations of the "scenes" created in Tasker, I decided to learn to write actual code and recreate this "app" that I created in Tasker with my own code. About a year later, Auto Respond is what it is now. Plus I've created tic-tac-toe, started to convert Euchre to Android, started on a countdown widget app, and have begun work on a super-secret project - which is going to be HUGE when it's finally released. (I've told a few of my close friends and family about this project, and they all LOVE the idea.)

Conclusion

So today I was thinking about this journey... from computer enthusiast, to wanna-be game designer, to failure of a programmer, to writing basic command line programs, to learning on my own, to semi-successful Android developer, and hopefully in the future to successful entrepreneur and app developer.

And through all of this, I've been working as an IT professional for 10 years... and I'm glad. I wouldn't want to code all day every day. I enjoy it too much. A lot of people out there say that you should never turn a hobby into a job, because you'll end up not enjoying it as much - I agree with them.

I LOVE programming, but I would hate it if I did it 40 hours a week. Plus, if I did programming as a job, I wouldn't want to come home and program my own stuff later. I want to program what I decide to program, not what someone tells me to program. And that's exactly what I do right now.

Now, I know what some of you might be thinking... "Well if this idea of yours does become big, then won't you be programming for a living?" ...Yes and no. Yes, I will most likely be doing a lot of programming to keep this whole thing going. But I will still be doing what I want to do, not what someone else wants me to do. I've always dreamed of being my own boss, and I hope that one day that dream will come true.

Sunday, July 7, 2013

Auto Respond 1.3.5.1

Like most people that I talk to, I do a lot of thinking while in the shower and driving. (Obviously, not both at once...) and this morning, before getting into the shower, I was thinking about some code in the latest update.

My mind went through this kind of process... " I put this there, and that there, and.... wait a second... that means that if the user edits the schedule, without opening the custom response list, the list could potentially be overwritten with blank data."

So I tried it. I opened a test schedule that I had setup, edited the list to contain a name, hit "OK" to save the schedule, then edited the schedule again, without opening the custom response settings, clicked "OK" again, and when I edited the schedule for the third and final time, my list was gone.

A few cuts and pastes of code later... the issue is fixed. And all because my mind often wanders off into my code.

So if you have setup a Do Not Respond list or a Custom Response list inside of a schedule, update the app to the latest version first, then check your lists to see if they are still there. If they're not there, recreate them and they should be safe from here on out. (As long as you update first.)

Sorry for the bug, but I figure I caught it early enough that it probably didn't effect too many people.

(As per usual, it may be an hour or so before the update is live in the Play Store.)

Saturday, July 6, 2013

Auto Respond 1.3.5

It has been published. Auto Respond 1.3.5 is being pushed to the Play Store right now. Not as a beta, as a release version.

Here's the full change log:

(Pro)

  • Fixed a crash when changing promote message
  • Added custom response list to schedules
  • Added do not respond list to individual schedules
  • Trim leading and trailing spaces before joining messages in custom responses
  • Change Screen title from "New Schedule" to "Edit Schedule" when editing a schedule

(Common)

  • Fixed a bug toggling promotion message in Android 4.0+
  • Fixed rare crash due to notification system
  • Fixed potential crash when responding to phone calls
  • Fixed multiple issues in the dock menu
  • Added Data backup/restore to Google Account
  • Change Screen title from "New Message" to "Edit Message" when editing a message
  • Removed some unused code


Yeah, that's a lot. Lots of bugs fixed, a few additions for both free and pro users, some small aesthetic changes... a little bit of everything.

The update should be available in a couple hours via the Play Store.

Thursday, July 4, 2013

New Auto Respond Beta

I've published the new Auto Respond Beta to the Play Store.

Change Log:

1.3.5 b1:
(Pro)

  • Fixed a crash when changing promote message
  • Added custom response list to schedules
  • Trim leading and trailing spaces before joining messages in custom responses

(Common)

  • Fixed a bug toggling promotion message in Android 4.0+
  • Fixed potential crash when responding to phone calls
  • Fixed multiple issues in the dock menu
  • Added Data backup/restore to Google Account
  • Removed some unused code

1.3.5 b0:
(Pro)

  • Added do not respond list to individual schedules

(Common)

  • Change Screen title from "New Schedule" to "Edit Schedule" when editing a schedule
  • Change Screen title from "New Message" to "Edit Message" when editing a message

It may be an hour or 2 before it shows up in the Play Store, and in order to use the beta you'll need to join my G+ community. If you aren't in it already, you can join the community here: 

Then go here to sign up for the beta releases of Auto Respond: https://play.google.com/apps/testing/com.havens1515.autorespond

The latest beta is just labeled 1.3.5, not 1.3.5 b1. That's because if no bugs are found, this version will be promoted to a release version. I've done a fair amount of testing, so there should be no glaring bugs.

Auto Respond Free will be released after testing with Pro is done. (The changes for Free have already been made.)

Monday, July 1, 2013

Auto Respond Progress

I'm finding out that doing things properly isn't always easy...

I've got the "Do not respond" (DNR) lists per schedule working, so I'm working on "Custom Response" lists. As with the initial building of this feature, it's not easy. But I also just realized something else that I neglected to do with the DNR list... I have to erase all of these settings when you delete a schedule! Otherwise, they may be wrongfully applied to a newly created schedule. I'm fairly sure nobody has actually downloaded my beta yet, so nobody should be affected by this little misstep.

On the other hand, Google has made app data backup and restore REALLY easy... as long as you use SharedPreferences... which I do!

So I've implemented app data backup/restore in both versions of Auto Respond. No, there is not a release version yet with these changes. I haven't even actually released a beta version with these changes... I'm hoping to do that in a couple days when the custom responses per schedule are finished.

Also, I've found and fixed A LOT of bugs. Many of which were hidden in the Dock menu, some in the Promote menu, and a rare crash bug when responding to phone calls.

Bottom line - with any luck there will be an updated Auto Respond in a few days, with some new features for pro users, backup for everyone, and fixes for everyone!

Wednesday, June 26, 2013

Squishing bugs, adding features

Over the past few days, I've been spending what little free time that I have (basically any time that I'm awake and not at work) working on Auto Respond.

I've found a few bugs, one of which I think I introduced in the latest beta, so you shouldn't have to worry about that one. The others are all in the Dock menu.

For those of you on Android 4.0+, you may notice that after opening the dock menu and starting to scroll, some of your settings change. Amazingly this is not a bug caused by me. It's actually a bug caused by a flaw in the Android OS which happens when you have consecutive settings screens, and one ore more of them have a switch preference. To my surprise, someone on Stack Overflow found a fix - and I implemented it. (If you are a coder and don't know what Stack Overflow is, find out. If you're not a coder, it probably doesn't matter to you.)

For all versions of Android, the "Get current message" and "Preset messages" buttons for the dock message options were not working. Again, this has been fixed.

None of these changes have been released in any version, because before releasing my next beta I want to finish what I've started with data backup. Yes, that's right... backing up the settings, messages, schedules, and whatever else may be included in Auto Respond. This will be available to free and pro users, and it will be using Google's new backup service which puts the data in your Google account. That means that if you get a new phone you can just re-install the app and have all of your data back.

Also, I'm working on adding custom responses to each schedule in the Pro version. The custom responses was a lot of work to implement initially (which is why it's a pro-only feature) and we'll see how much work it takes to implement it per-schedule. I know I can do it, but it may take some time.

So there you have it. A lot going on in the way of changes and fixes in Auto Respond. The new version will hopefully be out in a week or so, depending on how quickly I can work.

Saturday, June 22, 2013

Auto Respond 1.3.5 Beta

I just published a new beta version of Auto Respond. If you want to check it out, you need to join my Google+ community. (Unfortunately this is Google's restriction, not mine.) This beta only applies to the Pro version, none of the major changes affect any of the capabilities of the free version

The community can be found here:
https://plus.google.com/u/0/communities/103951105335573781027

There is a sign up for the beta testing in a post in the community.

Here is the full change log:

  • Added do not respond list to individual schedules
  • Change Screen title from "New Schedule" to "Edit Schedule" when editing a schedule
  • Change Screen title from "New Message" to "Edit Message" when editing a message

I know that last one affects the free version, but it's a very minor change.

The next step is to add the "custom response list" to individual schedules yet. Now that I have the "do not respond list" per schedule, I should be able to bang out individual responses fairly quickly.

Sunday, June 9, 2013

News

A bunch of random stuff in this one...


Auto Respond

First, I've released a few new versions of Auto Respond since my last post. All just bug fixes. I released another one this morning for Pro users, which fixes a FC when deleting a schedule. If you have received this FC, the schedule was still deleted properly but it closed while trying to update the view.

A few weeks ago I added another stat to keep track of in Auto Respond. Each time it sends a message, Analytics tallies it. In the first 7 days of June, Auto Respond has sent 53 messages! That's an average of almost 8 messages per day! I found that to be a pretty cool statistic. (especially since some people still have older versions installed that don't send that information, so the number could potentially be higher.)


Countdown Widget

If you follow me on Google+, or other social media, you may have noticed that I posted last night about a Beta version of my Countdown Widget app. A few updates about that:
  1. The app STILL has not been actually published to the Play Store. I'm not sure why this one is taking so long, but after reading through some stuff in the developer's console, it says it could take up to 24-hours to become live. Which means that it could be as late as 11pm Eastern Time tonight. (8pm for you West coasters.)
    1. EDIT: It's live now! But it only shows up in the Play Store AFTER becoming a tester! (As there is no publicly available version right now)
  2. While reading through that documentation, I also noticed that all of my testers have to be in either a Google Group, or a Google+ Community to use the link and get the Beta. I created a community a while back, and right now it only has 4 users (including me.) If you would like to use the Countdown Widget Beta (and future app betas) join my community! (Again, this is a restriction put forth by Google, not me.) https://plus.google.com/u/0/communities/103951105335573781027
Right now the app is fairly basic... put in a title and a date, and you get a widget which shows how many days until your event. There are also options to put a specific time with that date, and options to display hours left instead of days left, or display hours left when less than a certain amount of hours are left.

In the future I'm going to add a lot more options, like changing background color and transparency (right now it's black with 50% transparency,) possibly changing text size and color, rearranging the data that is displayed, and more designs and sizes of widgets.

The widget is resizable now if you have an Android version or a home screen launcher that supports it (I think resizing widgets was added in 3.0, but certain 2.x launchers may support it) but there is only 1 design. I have plans for more designs that will default to larger sizes.


Tic Tac Toe

I said before that I am going to build Google Games features into Tic Tac Toe... and I still plan on doing that. However, I still have not had the time to do that. I am working on a lot of stuff right now, and even the things mentioned above have had minimal work done. I've had Countdown Widget almost working for a while, and just finished up some last minute things over the past couple days.

Tuesday, May 28, 2013

Auto Respond crash bug

I've found a crash bug when using the status widget. It was an easy fix, but I can't compile an apk at work. I will push an update when I get home. 

Sunday, May 26, 2013

Auto Respond 1.3.4

I just published Auto Respond 1.3.4. Most of you are probably asleep (or will be by the time it's available) but it'll be ready for you in the AM. Here's the change log:
  • Fixed a crash in Dock menu when clicking settings name instead of switch (4.0+)
  • Moved "help" to the bottom of the menu
  • Reload all widgets on reboot
  • Changed error message in "Do not Respond" settings to be more clear
The crash in the Dock menu has actually been around for a while, but I just now figured out what was causing it. All changes apply to both the free and pro version.

Wednesday, May 15, 2013

Google Games!!!

It's there! In my Developer Console... "Google Play Games Services"!

I can't wait to play around with it, and network up my Tic Tac Toe game, and hopefully finish up Euchre soon, and get that networked.

I have some achievement ideas for Tic Tac Toe as well. I know, there's not a whole lot you can do with achievements in Tic Tac Toe, but I found some things. I've also got achievements already built into the existing Windows version of my Euchre game, so those will be coming over to Android, and I may add a few more. I may also categorize them a little differently than they are right now... we'll have to see.

In any case, I'm REALLY excited to get coding, there's just one problem... I don't have much time this week because I'm moving this week/weekend :-(

So most of the work won't even get started until next week. I've first got to read through the documentation and see how to use the API and all of that stuff, so it might be a couple weeks before any actual progress gets made. We'll see how difficult it is, hopefully I can get some good work knocked out in a little time.

Monday, May 13, 2013

New name?

Lots of questions coming up tonight! (I told you my mind was running wild!)

What do you like better:

1515 Studios (Current name)
Fifteen15 Studios (Potential Rename)

I wish there was an easy way for me to imdeb a poll, but I don't really know how to go about that, so leave your suggestion in the comments! (Please!)

New app?

Today has been one of those days that my mind has been wandering.... and wandering to good places. This is the result of one of those wanderings.

I've been using a countdown widget app for quite some time now, and recently the developer updated the app and completely ruined it in my opinion. I have not downloaded the most recent update because it looks terrible, and there are a bunch of negative reviews about how transparency was removed, and it overall did not look good. So I kept the old version, so that I could keep my widget as-is.

So suddenly I started thinking... I could make an app like this. And it wouldn't really take too long. I've got the gist of widgets now, I've done a count-down type of code with the schedules, and I can add in a TON of customization from what I have learned doing both Auto Respond and Tic Tac Toe.

So here it is... some ideas for my countdown widget app:
  • Information
    • Name/Title of event
    • Date (optional? - only time - repeat daily)
    • Option - Time
      • Either date or time would be required if date becomes optional
    • Option - Show hours instead of days 
    • Option - Show hours when less than X days left
  • Look and feel
    • Selectable color/image for background
    • Selectable transparency for background
    • Text
      • Selectable color for all text
      • All text same color checkbox
      • Customizable text order
        • Text1 - Name
        • Text2 - Date
        • Text3 - Days/hours remaining
    • Stock images (to come later)
  • Selectable size in setup? (? = not sure if this is possible in the setup screen)
    • 1x1
    • 2x1
    • 2x2 with picture background
    • 3x3 (?) with picture on side (? = I'd have to play with sizes for this one, to see what works best)
  • Show preview of widget as changes are made
  • Option - Remove widget automatically when countdown reaches 0
  • Option - notification/alarm when countdown reaches 0
    • alert sound
    • alert vibrate
These are the notes I've made for myself so far. Any other ideas you can think of for a countdown widget? 

It's a simple idea but, as you have probably noticed in my other apps, I like options and customization! :-)

Sunday, May 12, 2013

Google Games is coming!

For those of you who don't know, Google I/O starts on Wednesday!

There has been a LOT of speculation as to what will be announced at I/O, but there have been some things that have been pretty much confirmed, and right now, Google Games is one of them.

Android Police (AP) did one of their famous teardowns of some new a new Google Play Services app, and found a TON of references to Google Games, and even some working pieces!
http://www.androidpolice.com/2013/05/11/google-play-games-leaks-out-in-all-its-glory-ahead-of-google-io-hello-cloud-game-saves-apk-teardown/

Reading this got my mind rolling with ideas for Tic Tac Toe and Euchre. New achievements all over the place, new ways to get people connected, new ways to get more people playing, and new ways to have more fun with the games that I've already created! (Or in Euchre's case, mostly created)

Since none of this has been officially released (or even officially announced) I can't really start working on these things yet. But you can be assured that I will be working on it soon! (Well, once things get settled down in my personal life. Check out my personal blog for details on that.)

Friday, May 10, 2013

Auto Respond 1.3.3.1

Sorry for the bugs... I created a new function that was similar to an existing function. I copy and pasted the code, but what I didn't realize is that the trigger had to be opposite on the new function.

This created all sorts of havoc. I found a few other things when I got home that needed to be changed to allow the new function to work properly.

It should all be fixed now though. The new version has been published, and should be available in a couple hours when Google's servers sync.

Auto Respond 1.3.3 Bug

Sorry guys, but there is a bug in 1.3.3 that causes schedules and some other things to not work properly! I stupidly got some logic reversed, and broke some things.

It is a quick and easy fix... I've already fixed the bug in the code.. but I do not have a compiler on my work computer, so I can't release an update until I get home! I'll be home in about 2 hours, and I'll release the new build ASAP!

Thursday, May 9, 2013

Auto Respond 1.3.3

I said it would be quick, and it was.

I successfully added a "status" widget to Auto Respond, both Free and Pro. A lot of copy and pasting mainly, a few extra lines of code here and there, and bam: new widget. I hope you enjoy it!

As usual, the new version has been published, but may not be available for download for a couple of hours, due to delay on Google's servers.

More Suggestions

As I said recently... I love my users!

Someone just contacted me about something which, unfortunately, cannot be done the way that it was presented. The user wanted me to make it so that when Auto Respond is on, the icon on a home screen shortcut would be green, and when it's off the icon would be red. This icon cannot be changed dynamically like that (and if it can, I haven't figured out how to do it yet) because the icon is actually hard coded into the app.

The good news is, there is another way to go about getting this functionality - and that is to make another widget! This widget would be available to both free and paid users, as it would not have any functionality that bypasses ads. I am going to call it the "Auto Respond Status" widget.

Basically, it will look like the message widgets: an app icon and some text. In this case though, the text will always be "Auto Respond", and the icon is linked to the global status of Auto Respond, not the status of an individual message.

Clicking on this widget will simply open the app, just like a shortcut (dragging the icon from your app drawer to the home screen) would. But unlike that shortcut, the widget will show you whether or not the app is enabled by displaying a color coded icon.

I have not begun work on this widget yet, as I just received this request a few minutes ago. But I don't think this will take me a lot of time. Much of the code from the message widget can be reused for this one.

Thursday, May 2, 2013

Auto Respond 1.3.2.2

A new version of Auto Respond has been pushed to the Play Store.

Change Log:
  • Updated to new SDKs
  • Added option to promote Auto Respond with a text signature
The new SDKs include Google Analytics, which has better support for exception/crash reporting (thankfully, because now I can hopefully get more info from those reports,) and other small SDK improvements, most of which I don't really care about.

Here are some screenshots of the new feature. As I mentioned, I made it all optional. Even added a "Preview" option, so that you can see what you message looks like with the signature added.


Everything is purple in these shots because I still have my purple theme applied. It will be blue if you have the default theme applied to your device.

The main option defaults off, for both versions, and the "Promote Pro" defaults on for both versions.

Wednesday, May 1, 2013

Love My Users!

Love You Guys!

I'm not sure if I've said this publicly before, and if I have I surely don't say it enough - I love the users of my apps!

Let me say that I originally developed Auto Respond as a tool that I, personally, had a need for. I decided that if I had a need for it, others surely will as well. That's why I shared it freely for a while on forums, then eventually went onto the Play Store.

Even though I was my own customer originally, the people who use my app are constantly helping me improve it. If I had nobody out there pushing me to improve things, it probably wouldn't get done. (Or at least, it would take a lot longer to accomplish.)

I am still the biggest critic of my own work. I always will be. I find a lot of bugs, crashes, typos, etc. before anyone else reports them. But I do love hearing from my users about possible additions, things that could possibly work better or differently, etc.


Suggestion

Having said all of that, a user came to me this morning with a painfully obvious suggestion. So obvious that I'm a little embarrassed to admit that I had never thought of it myself... promoting my app through a signature at the end of Auto Respond messages!

Now, I hope you all know by now that this is not something that I would force you into. That would alienate too many users. People don't always like to be used as a free advertising tool. Other people, however, like to show off the tools that they are using, and help other people discover those tools.

That's why I'm going to add this as an option to both the free and paid versions of Auto Respond. If you would like to tell others about Auto Respond, turn it on and spread the word. If you are in the group that finds that kind of thing intrusive, or don't like the idea for some other reason, then don't use it. It's entirely up to you.


Some Questions

I'm thinking about also possibly making the message customizable, and obviously a link to the Play Store would be added to the end of that message. The one thing I need to think about is which version should I link to? Should I always link to a specific one (always free or always pro) or should I link to the app that the person is currently using? I'm thinking of linking them all to the paid version, simply because I feel that the extra features are worth the minimal cost. Or should I make that link an option as well? Free or paid option...

I'm also debating whether or not the option should default on. I was thinking default on for free users, then you can turn it off if you don't want it on, and default off for paid users, and you can turn it on if you do want it. I'm afraid that defaulting it to on might still give people a negative feeling though.

What do you guys think? I've proposed a few questions here, and feedback would be appreciated! :-)

Tuesday, April 23, 2013

Possible Auto Respond Crash Bug

I received a report in Google Analytics today that there was a crash in the settings menu in Auto Respond Free. The crash seems to have occurred on a Galaxy S3, running the latest version of the app (1.3.2), on Android 4.1.2, possibly from an international phone because the language was en-gb. (British English)

Yes, I can tell all of that from Google Analytics. What I cannot see is any identifying information about the actual user (name, location, anything like that - which I don't really need anyway) and more importantly I cannot see the EXACT location of where the error occurred. Again, it appears to be in the settings menu, but it does not give me an exact line number.

I tried reproducing this error, and I cannot get it to crash on my Galaxy Nexus running 4.2.2. If you happen to run into this error (Or if you have an S3, or another phone running 4.1.2, and can recreate it for me) please send in a crash report when the FC happens so that I can get more details. I looked through my code, and cannot figure out where, or why, this error would have occurred. Since I cannot recreate the issue, I do not know if the bug exists in the pro version. The instance that occurred was reported by the free version.



For the record, it has been quite some time since there has been a crash bug reported in a market version of ANY of my apps, so this is a rare occurrence. For those of you who have been using my apps for a while, you know that I bugs very seriously (especially crash bugs) and I work toward fixing them as soon as I know of their existence. Sometimes, your help is necessary in finding the root cause.

Tuesday, April 16, 2013

Android Euchre Progress

I've finally done it... my euchre logic will compile... mostly.

The only part that doesn't compile is displaying the cards, because I haven't created all of the separate card images yet. I have the image with the entire deck, but I need to split that into 24 different files (Yes, 24. This is a euchre deck, not a regular card deck) then I need to resize those 24 files for different screen sizes.

Then after that's all done, I obviously need to test to make sure I didn't break any logic. Then I need to build in the options that I had in the Windows game, and the statistics that are in the Windows game, and build a menu, and work on the achievements, and getting it to network... so there's still A LOT of work to do.

BUT, I have reorganized a lot of the logic into new object classes (which makes the logic easier to follow) and I've fixed some actual logical errors in the computer play logic (thanks to warnings in the IDE I'm using) and the layout is pretty much set (I might have to tweak it slightly for different screen sizes, but it's mostly good)

Here are some renderings from my IDE:




These renderings are emulating what the game would look like on a Galaxy Nexus.

I've included a few different views with different buttons that are used at different times. Also, different information is displayed at different times, so not all of the text boxes that you see will always be present at all times.

As you can see, there is an ad in the top left, (where it is very unlikely for the user to accidentally click it) hand information in the top right, game information in the bottom left, and most of the user interaction is in the bottom right.

The "Message Text" area is where all messages to the user will be displayed. This includes information about actions by the other players (IE: "Player 2 has passed" or "Player 2 has ordered the 9 of clubs to Player 3", etc.) and it will have information as to actions that need to be taken by the player (IE: "Would you like to call trump?" or "Select a card to play", etc.)

The cards in the center are the cards played by each player for that trick. This is also used as the "Up Card" display for player 1 and player 3. The "Up Card" for players 2 and 4 are closer to their hands.

There is a (Dealer) and (Passed) label for each player, which will be displayed as necessary. Once trump is called, all of the (Passed) labels will disappear, and some hand information will appear in the top right. The (Dealer) label will stay near the player who dealt until the next hand is dealt.

Sunday, April 14, 2013

Redesigned Menus

After seeing how some other apps did menus, I realized that my menus were kind of out of date.

Mainly, a lot of apps use the "action bar" in Android 4.0 for their menu, then put the rest of the menu in the overflow menu. So I did this with all of my apps.

The settings button and the share button are now in the action bar, and the rest of the items are in the overflow menu. For users on Android 2.x, it's all still in the menu, but many menu items now have icons associated with them.

Also, in Tic Tac Toe the settings menu item is no longer present while in an active game. Previously, this item was present but would display an error dialog if clicked. Now it's gone.

Here are some screen shots:



Look at the top right of the screen shot, just below the time. That's where the menu is. Notice how the wrench icon is present in the first shot, but not in the second.

Auto Respond's menu setup is identical to the setup in the first screen shot.


As usual, these updates have been pushed, but may take a while to be live on the Play Store.

Saturday, April 6, 2013

Auto Respond 1.3.1

The new Auto Respond has been uploaded to the Google Play store. Again, nothing too big for free users, but a new widget for pro users.


Change log:

(Pro)

  1. Fixed error with scheduler displaying wrong day of week in extremely rare cases
  2. Fixed error with creating a widget with default message in rare cases
  3. Added 4x4 schedule widget (Android 4.0+)
  4. Toggling Auto Respond off will return response message to value prior to activating schedule or widget

(Common)

  1. Changed some appearances
As usual, it may not be live in the Play Store for a couple hours, but you can look forward to seeing it later today.



There are some quirks about the new widget:
  1. It's only available in Android 4.0+
    1. Some of the things I used were added in API 11 (Android 3.0) and since this app is useless on tablets, and 3.x was only used on tablets, this widget is only available on phones with Android 4.0+
  2. When using the on/off toggle for an individual schedule, the widget must reload, which causes it to "blink". It's weird. I tried fixing it, but from what I've seen around the web there's no better way to do it. 
I'm sure I'll take another look into these issues in the future, and see if there is a better way to go about it, but for now it works with some small quirks.

EDIT: For the record, I currently only have 3 users on the pro that are on Android 2.x. Sorry to those 3 users. I tried making it available for everyone, but I couldn't.

Thursday, April 4, 2013

Schedule Widget almost done

So as I said before, I've been working on a schedule widget. I've gotten almost all of it working:






What's working:

  1. App icon opens the app
  2. + icon adds new schedule
  3. Play icon starts schedule immediately
  4. Pause icon stops schedule immediately
  5. Pencil icon edits schedule
  6. On/Off button enables/disables schedule
What's not working:
  1. Sort button does nothing. 
    1. I may drop this if I can't get it to work. It's not really necessary anyway.
  2. On/Off button does not change appearance when toggled
    1. It changes appearance if you remove/re-add the widget, but not immediately. Not sure why.
  3. List does not scroll
    1. I have not yet looked much into how to make it scroll. I found some documentation on it, but have not yet read through it.
    2. Preliminary reading indicates that it will only scroll on Android 4.0+
Good news - the list of "not working" things is quickly getting smaller. Yesterday none of the individual schedule buttons worked, and even as of an hour or so ago, only 1 worked properly. Now they're almost all 100% functional.

As you can see in the screenshots, I changed the color of the top bar to be holo themed, so if you are using a theme that takes advantage of holo colors, the color of the bar will change with your themes. (Notice the color of the icons in the top right - like battery, wifi, and time - changed with my theme, and the widget bar matches that color.) 
This background is also semi-transparent, as it was way too bright when it wasn't.

Now, onto some changes to the in-app schedule screen:


As I showed before, the menu is now on the bottom. I changed the edit icon to the pencil, as I said I would, and I added a delete button. Upon being pressed, the delete button displays a dialog asking "Are you sure?" in case you accidentally hit delete.

Nothing happens when you click/long-click anywhere other than those buttons. This is to make things more obvious to the user, and to make things easier on me as well.

I have tested this in both Android 4.x and 2.x,  and all buttons seem to work properly in both OS versions.

Wednesday, April 3, 2013

Auto Respond - some new looks

As I was working on the new widget, I was messing around with the way some things look. I tried finding a way to make each schedule use less space, while also looking cleaner, and I think I've found a good way to do it.

All the info about the schedule is now on the top, and all of the things you can do with it are in a menu below each schedule. There are no words in the menu, which saves space. Only descriptive icons, which are built-in icons from the Android system. (I might change the preferences - wrench - icon to an edit - pencil - icon)

Each schedule actually takes up slightly more vertical space, but I still think this looks better. Also, I somehow broke the click and long-click on the schedule info, but I'm working on getting that functionality back.


As you can see here, I've also added an icon to the new and sort buttons. This is probably not necessary, but I like the looks of it. These icons are also present in other screens which have the new and sort buttons.

I am most likely going to make the widget look more like this as well, but I will need to use something other than a switch for the on/off functionality. As I said yesterday, switches are not allowed in widgets for some reason.

So far, this is what I've come up with for the widget:


Again, there is slightly more space taken up. The other design showed 3 schedules in the space that this was shows roughly 2.5, but I think it looks cleaner.

Let me know what you think.

Tuesday, April 2, 2013

Auto Respond's second widget

It's not quite pretty yet, and not all of the features are quite there yet, but I've created a second widget. This one is for your schedules.




There are a few working parts already, but as you see there are a few things missing still.

Working:

  1. The Auto Respond icon in the upper left opens the app
  2. The + button allows you to create a new schedule
  3. All schedules display properly
  4. There is a semi-transparent black background on the widget, to show the boundaries of the widget
Not Working:
  1. The sort (a>z icon) button currently does nothing
  2. The start and stop buttons (play and pause icons) currently do nothing
  3. I cannot put a switch in a widget (limitations of the OS), so I may need a different way to toggle the individual schedules
  4. The list is currently not scrollable
The good news: 
  1. A lot of the hard work is done - The information displays, and I can get it to update properly.
  2. I know where I need to do work to make the start and stop buttons work. 
  3. I'm pretty sure I know what needs to be done for the sorting, I'm just too lazy to do it tonight.
  4. I've actually made some progress even while writing this blog entry (I've uploaded 3 different screenshots already)

Thursday, March 28, 2013

Widget FC

Just now, I got a FC from Auto Respond when trying to create a new widget. I hooked it up to my computer to try to figure out why it was FCing, and sure enough, it didn't crash.

If you experience a FC when trying to create a widget, please send an error report if it gives you the option. This is the first time I've seen that happen, and if I can't get it to reoccur I can't get a log to help me fix it.

UPDATE: I've put out an update which may fix it. But if you see it crash, let me know.

Over 1,000 installs! And some other stats

Auto Respond

Today, Auto Respond surpassed 1,000 total installs between the free and pro version.

Sure, some of those may be people who used the free for a while, and then switched to the pro after using it. But still, it's a good day.

Only 160 of those installs are currently STILL installed. That's a 16% retention rate, which isn't too bad considering the number of people using the Play Store and the number of apps available.

Tic-Tac-Toe

Tic-Tac-Toe, on the other hand, has 172 installs and 57 current users. This shows the difference in the quality people expect from their games vs. other apps. I think Auto Respond is a MUCH higher quality app than Tic-Tac-Toe, yet I have a much higher retention rate for Tic-Tac-Toe. At 33%, the retention rate is over double.

Ratings

On the other hand, people have not left any reviews on Tic-Tac-Toe. (The only review is actually from my mother. Thanks for that mom!) Auto Respond doesn't have quite as many reviews as I would expect from the wide user base, but it definitely has a higher rate of ratings/install.

Ratings/total installs:

Auto Respond free: 1%
Auto Respond pro: 15%
Tic-Tac-Toe: .5%

Ratings/current users:

Auto Respond Free: 6%
Auto Respond Pro: 37.5%
Tic-Tac-Toe: 1.7%

Conclusion

What does all of this tell us? Basically, games are where it's at for mobile development. Even simple games, like Tic-Tac-Toe. But people don't want to spend the time to rate games, which is why so many games try to coax you into it by offering something in return for rating their app.

Auto Respond 1.3

Auto respond 1.3 has been released! For those of you running the free version, this is a minor change. But for those of you running the paid version, this took me months to complete. Here's the changelog:


1.3:

(Pro)
• 1x1 widget for quickly toggling individual messages
• More widgets will be added in the future!

(common)
• List of contacts that have already been responded to is now done by contact id, not by name




I said I wanted to keep this for a couple of days to test the widget, but I've tested everything I can think of with it, and I can't break it in any way. If you have the pro version, please check out the widget. If you break it somehow, let me know what went wrong and what you did to cause it.

If you don't have the pro version, please think about purchasing it. The extra feature are really worth the minimal cost. And as I stated in the change log: now that I know how widgets work, I've got some ideas for more. But none of them will be coming to the free version.

As usual, I just posted this to the Play Store so it may be a couple hours before it's available.

Wednesday, March 27, 2013

Auto Respond's first widget is almost ready for release!

I've think I've gotten all of the oddities worked out of the first available Auto Respond widget, but I'd like to test it for a day or so before releasing it.

As I said in a previous post, right now it's just a 1x1 widget. When you create the widget it asks which message you would like to attach to it. After it's created, it displays the title of the message you selected, and the app icon. When that specific message is enabled, the icon will show the on colors (green with blue, or purple with pink) and when the message is inactive, the icon will be the red icon.

If you click on the icon, it toggles Auto Respond and inserts the selected message. If you click on the title of the message, you can select a different message for your widget.

If Auto Respond is activated within the app (and not from a widget) but there is a widget for the message that is used, the widget icon will turn to the on colors.

If Auto Respond is currently active and you click on a widget for a different message than the current message, that widget will change to the on colors and the Auto Respond message will be changed to the message for the selected widget.

If you delete the message to which the widget was attached, the widget will display an error message. If you click this error message, you can attach the widget to a new message.

Here is a screenshot with a few widgets, including a broken widget:


In this shot, the "Test" message is enabled, and the others are obviously disabled. The "error" case was created on purpose for testing and demonstration purposes.

Tuesday, March 26, 2013

More Euchre interface ideas

Since I'm planning on having a database to store data, it will be easier to allow users to create multiple user profiles, and one device can then be used for multiple players. (Even using one login on devices that allow multiple device users.)

So I created a mock up of what I expect the user creation screen to look like:


I took a screenshot from my GNex used GIMP to make it plain white, then used MS Paint and GIMP to create this, so it's not the best quality thing ever, but it gives you a general idea of what I'm thinking.

The only required piece of information would be the name. Each person needs a name, and they will be assigned an ID in the back end. I left some empty boxes, just because I don't know what else people will want to put in there.

There are also options to import information from Facebook, Twitter and Google+. This is something that I've never actually done, so I'd have to look at their APIs and figure out how to do that. (Or if it's even possible in the case of G+)

I also have achievements built into the Windows game, so I'd like to keep those and link them to a user profile as well. I also want an option for a user to backup this user data somewhere, and re-import it to a new device so that all of their hard work is not lost. Not sure if that's possible without root access, but I'll look into it.

For the picture, I'll obviously come up with a default picture like most services do. That picture will be used unless the user uploads a new one, or pulls one from a social media site.

I'm generally a fan of the dark theme, but for this application I think the light theme will be a better fit. It will give a more upbeat feeling to the app, and I just think it will look better than the dark theme. As shown in this render, I will likely still use the dark theme for the buttons. This will make them stand out a bit from the rest of the UI.

Monday, March 25, 2013

Auto Respond widget progress

I had posted a question on StackOverflow about why my widget wasn't working when clicked, and the other day someone responded asking if I was still having trouble with it. I was, so I said yes.

After seeing the response, I decided to show a friend of mine that it wasn't working... suddenly, it WAS working, just not properly. Before, it had done nothing when I clicked the widget. Now, it did something, just not the correct something.

Fast forward to today. I decided to spend some time trying to figure out what the heck was going on. After a couple hours of sitting and coding, I got it working!... well, mostly. There are some display oddities if there's multiple widgets on the screen, and it takes a while for the widgets to initialize... but it does what is expected when you click it!

I'm done for now (I need to get myself some lunch and give my eyes a rest from this monitor) but I'm sure that with a little more time spent on it, I can get this widget working 100% as expected.

Right now it's just a 1x1 widget. When you create the widget, it asks you which of your saved messages you would like to use. After it's created, if you click the widget, it toggles Auto Respond and automatically changes the message to whatever you selected when setting up the widget. When you click the widget off, it toggles Auto Respond off, and returns the message to whatever it was set to prior to enabling it.


The left shot here is when it is off, the right is after toggling it on. I have the purple icon option turned on, so the on shot has the purple icon, but if the purple icon option was off, it would be the green icon. "Default" is the name of the message that I picked when I created the widget.

Once I get this one fully figured out and working 100% as I want it to, I am going to eventually add some larger widgets. Maybe some where you can insert a message on the fly, and toggle it as well. Maybe some for schedules, where you can enable/disable schedules from your home screen.

All widgets will only be available in the Pro version, so if you're using the free version you will need to upgrade to use this feature once I release it.

For those of you currently running the Pro version, there MAY be a small bit of code that I accidentally left in the release version. You may be able to create a widget, but it will not do anything until I release an update.

Sunday, March 24, 2013

Euchre - GUI Changes

I need to (at some point) start thinking about how this thing is going to look. So I took some screenshots from the Windows game, and marked them up a bit with what needs to be done.

First, some things to get rid of, and move around:


Anything with a red X through it can be removed. The logo in the center is unnecessary. The visual representation of the score (Above "Team 1 Score" and Team 2 Score") would take up too much space. Same with the visual representation of the tricks won be each team (this is empty, as this shot is from the beginning of the game, but they are normally above and below "Team 1 Tricks" and "Team 2 Tricks".) The games won numbers will be moved to the statistics window. These are mostly things that I added because I had the room for it on a desktop environment, and add a bit of realism to the game. They are not, however, necessary to game play.

The circled information (team score and tricks) can be gathered into one place, which for now I have designated as the red rectangle in the top left. Or possibly score in the upper corner, tricks in the lower corner, or something like that.

Next, some things that are necessary to keep around, and in a similar place as where they are now
:

Again, I've X'd out the unnecessary things, but in this case the circled objects need to stay relatively close to where they are.

Players' cards and name labels need to remain at the 4 edges of the "table". There is also a (Dealer) label next to player 4's name label, indicating that (s)he dealt this hand. There is also a (Pass) indicator that appears next to the names after a player passes their turn to call trump. (Since nobody has passed in this shot, the pass indicator is not present. But it is in a similar location to the dealer indicator.)

Near the bottom center (where the human player's cards are) is a message to the user, indicating the most recent event in the game or what they need to do to further progress, below that are buttons (in this case for selecting trump, but other button appear there as well throughout the game. See the other screenshots to see those buttons) and below that are choices to call alone, or to pass ("Don't Call".)

These things all need to remain relatively close to their current position.

And lastly, some more things that need to stick around.


Once again, X's through unnecessary items, circles are things that should stick around.

In the top right is information about the current hand: who dealt, who called trump, and what trump was called. This can be moved if necessary, but should still be present somewhere.

In the center are the cards that each player has played in this trick. If you look at the screenshot above, I use a similar location for the "Face up card" when calling trump (which ironically is face down in the shot.) In the mobile version these locations can be one and the same, but the face up card will still rotate around the table, to give a visual representation of who dealt the hand.

You can also see in this screenshot how the visual representation of the tricks are displayed. Team 1 has 1 trick, therefore 1 face down card is displayed above the "Team 1 Tricks" text - indicating that 1 trick, or book, has been taken by that team. As stated above, this is not necessary as long as there is a textual representation.

Euchre - Moving code is time consuming!

As I mentioned in one of my previous posts, I'm doing a lot of rearranging of existing code: Moving some stuff into existing object classes and creating some new classes.

Unfortunately, this does not necessarily mean less code, it actually usually means more code... and it means a lot of revamping on existing code to change it to object.function() notation. But the good part is that it means better organization of the code, and more secure code.

Previously, I had a lot of global variables so that I could access information from anywhere. Now, those global variables are mostly inside of an object (or will be soon.) This makes the information harder to access from the outside, making it more secure, and it also gives the code a better logical flow, which means that it makes more sense to me and anyone else who tries to interpret the code.



Even when originally creating this program I knew that having so many global variables was a bad idea, but at the time I couldn't think of a better way to do it. I was still VERY new to programming (and still am fairly new at it) so I didn't have a lot of the knowledge that I have now. (Plus it wasn't a very public program, so I wasn't too worried about doing things by the book. I just wanted something that worked.)

Another problem that I have is that most people will come up with an idea, then create a plan of attack (including things like: What objects do I need? How am I going to have the user interact with this? How do I want to display things? etc.) I normally do not. I sit down and start coding, and when I run into something where I ask myself "How am I going to do this?" I make a note, move onto something else, and think about a plan of attack later. (I've actually got more pre-planned with this project than I do on most of my projects)

I know, this is not a good way to do things, but it's just how I am with everything. Planning is not my strong point, execution is my strong point. Even in high school and college, the teacher would say something like "You have all semester to do this paper. You should start it now or you'll never get it finished!" I'd start a week before it was due. Sometimes less. Some of you might call that laziness, or procrastination (I would call it procrastination as well) but it's also just a lack of planning on my part. But the best part is, I'd always do best on the papers/projects that I procrastinated most on. I guess I just work better under pressure.

But back on topic... as I've said a few times already, this code revamp is going to take a while. I have not even begun work on the UI layout, or anything that is user-facing code. It's all been back end stuff, and it's still a work in progress (even after spending about half of my day yesterday coding.) But the good thing is that when I'm done with this revamp, it's going to be a much more solid product.




Side note: My main file still has over 11,300 lines of code. Admittedly, at least a few hundred to 1,000 of those lines are probably comments (one thing I DID do well with this was commenting) but that's still a LOT of code. And that doesn't even count the code in the object classes. However, I think a lot of code will be eliminated when I start getting rid of things like saving/loading files (I plan to use databases and SharedPreferences instead) and some of the Windows specific things (like only allowing 1 window to be open at a time, a lot of menu code - which I expect to be less code for Android, and a few other random things.)

Friday, March 22, 2013

Euchre Translation - preliminary thoughts

So I started looking through my code for my euchre game, and thinking of ways to improve my existing code. Mostly, ways to make this not seem like such a daunting task,

In my main file, which does most of the decisions on how the game is actually played, I have over 11,000 lines of code. Yes, you read that right. 11,000 lines in just one file. That's insanity. So I got to thinking, I have many objects that I can distribute some of this code through.

Objects I have: CardDeck, EuchreDeck, PlayingCard, EuchreCard, Player, EuchrePlayer
Objects I think I should create: EuchreGame, EuchreHand, EuchreTrick, Stats
(All existing object classes have been translated to Android/Java already. The main code still has not.)

The CardDeck/EuchreDeck includes things like how many cards are in the deck, how to deal the cards, how to "shuffle" the cards

PlayingCard/EuchreCard contains things like the value and suit of the card, a "euchre value" of the euchre card, whether or not the card has been used, if it should display face up or face down, and the image associated with that specific card.

Player/EuchrePlayer has things like the name of the player, how many cards they currently have, what specific cards they have, whether they are human or computer, and their most recently played card.

EuchreGame will have things like the current score of the game, and achievement based variables.

EuchreHand will have things like a trick count for each team, whether or not someone called "alone"

EuchreTrick will have things like what player played which card

Then at the end of each trick, hand, and game, I can just create a new object which will reset the variables instead of resetting them in that already huge mess of code. It will make it look much better, and it will make it much more manageable in the future.

The game also keeps an insane amount of statistics, and displays them all in a single window (not sure how I'm going to display these stats on Android. Right now I have them broken into individual player stats, and team stats. I might have different tabs for each category, or I may have separate layouts depending on phone/tablet) All of these stats can be kept in an object instead of just variables, like they are now.

And there's a lot of code that belongs in the existing classes which is not there yet. I just went through and marked a bunch of code that should be moved, and I'm sure there's more. (I've only been through a couple hundred lines of the 11,000.)


Things I need to learn/plan/think about:

  1. How to write an object or variables to a file in Android
    1. The stats are kept in a file, and read from the file at the opening of the program. I don't currently know how to do this in Android.
  2. How to network it
    1. I want to use Facebook and/or G+ to do something like "Words With Friends" or such games to allow people to play online. 
      1. Do I need a server of my own to do this? 
      2. Can I use the requesting device as a "server"?
      3. Can I use FB and/or G+ as a server?
    2. Should I make it live play only, or turn based like Words WF?
      1. I think making it turn based would be boring, but are people going to sit and play an entire game of euchre without quitting out? Having people constantly quit halfway through would be annoying.
        1. Maybe have it live, with an option to continue later?
    3. I have no idea how to do any networking in Android, so in any case I'm going to have a learning curve.
If you have any insight on the above (as a developer who can point me in the right direction for learning, or as a user who has a preference on game play) please leave a comment.

Thursday, March 21, 2013

Euchre Card Design (and some game play design info)

I have finished the card design for my euchre game.

I went online and found a design someone else had made, then changed the design completely and only kept their template.

The design I found was close to a real deck of cards: the 9 of hearts has the number 9 and a heart symbol in the top left, and the same but inverted in the lower right, and 9 heart symbols in the center. This is how the cards in my desktop game are designed, and it works fine. However, a design like this would be hard to see on a phone, and maybe even a tablet. So I simplified it.

Each card now has the number (or letter) designating it's value, and the suit symbol in both the upper left corner, and in the center of the card. In both places, the number is above the suit.

I kept the top-left notation because I want the cards in the game to be displayed as they would appear in your hand in real life: stacked over top of each other, with only the left side showing on all but the right-most card. Again, this is how the desktop game is setup.

However, when a card is played (or otherwise not in a player's hand) the whole card will show. Also, I want to make it so that when you hover over a card in your hand, it will lift a bit, so you can see exactly which card you are choosing (again, like the desktop version) and to play the card, you will swipe up toward the center of the card table.

This is going to take a while to figure out how to do. As some of you know, I have a swipe action in Auto Respond, but the swipe is not animated. I have not yet figured out how to make the screen (or in this case an object) move as the swipe is occurring. This is something I will have to look into some more.

Here are the card images I will be using:


Depending on how well the images appear on screen, I may adjust the size of the text a bit. Possibly making the corner text slightly larger, and/or making the center text slightly smaller.

For those of you who know how to play euchre, you know that I only need the 9 through A of each suit for this game. But I figured that designing all of them would make it so that I can reuse them for other games if I want. (and I may use a 2 and 3 for showing the score, like I do in the desktop game. Although that would be tough to do without having multiple symbols in the center of the card. It may confuse some people.)

Also, I just realized I still need to design the back of the cards. As with the desktop game, I will likely have multiple designs for the back of the cards. A simple design of stripes or crisscrosses available in both red and blue, and maybe some special designs, like the 1515 Studios logo, or an Android (or bugdroid as some call it.) We'll see what I come up with :-)

Euchre Conversion to Android

I just started converting my Windows Euchre game to an Android app, and there's already some things I miss about C#.
  1. Operator overloading
    1. In C# I can create functions to overload the =, ==, <, >, and other operators, so that I can do things like if(card1 < card2)
    2. In Java I have to create functions like .set, .equals, .lessThan, .greaterThan, etc. So I have to now change all of the == to .equals in my code, and so on with the other operators. Now I have to do if(card1.lessThan(card2))
  2. set/get Functions
    1. In C# I can do something like this:
      public string name
      {
          set
          {
               this.m_name = value;
           }
           get
           {
               return this.m_name;
            }
       }

      Then access the variable like this:

      player1.name = "Randy";
      and
      name = player1.name;
    2. In Java, I have to create 2 functions, setName, and getName, then have to access like this: player1.setName("Randy"); and name = player1.getName();
  3. Native Data Types: This one I've run into before while programming with Android/Java... native data types have different names in C# and Java. And I'm so used to using C/C++/C# that I often find myself using the wrong name.
    1. In C#, true/false values are bool, and text values are string
    2. In Java, true/false values are boolean, and text values are String (capital S)
      1. This is because (as I explain in more detail in #5) strings in Java are objects, whereas they are a native data type in C#.
  4. Naming Convention
    1. In C#, generally variables start with lowercase letters, and functions and classes start with uppercase letters
    2. In Java, generally variable and functions start with lowercase, and only classes start with uppercase.
  5. String comparison: Because there is no operator overloading in Java, and strings in Java are actually objects not a native data type, this is different too
    1. In C#, I can say if(string1 == string2) and it will compare them.
      1. This is partly because strings are a native data type in C#. But even if they weren't, you would have the ability to override the == operator.
    2. In Java, I have to say if(string1.equals(string2)) to compare them
      1. This may not seem like a big deal, but doing string1==string2 is legal, and a valid statement, but it likely will not return the result you are looking for. This will check to see if the two variables are in the same memory location, NOT whether or not they contain the same information.

These things may not seem like a big deal to someone who is not doing the programming. A few extra letters here or there, some difference in lowercase vs uppercase, some extra functions here or there... 

But when you're dealing with literally thousands of lines of code which need to be translated from one language to another, this is a big deal. And testing is going to be a big deal too, because I'm sure that I'm going to make some translation mistakes somewhere. 

Luckily the IDE I'm working with is VERY good at pointing out possible logic errors as warnings (like the string1==string2 thing) so that will definitely help. But this may take a while, as I expected.

And although the IDE is good with logical warnings, #4 becomes a problem with this IDE because the auto fill function in the IDE is case sensitive. So if I am looking for player1.getName() and start typing player1.GetName(), the auto fill will not find getName(). (Or if it does find it, it will take a while to find it.)


Sorry for the rant, I'm just not a fan of Java and never have been.