Attempting to massage user inputs and output in ChatGPT is painful. We spent hours trying to print some coloured text using LaTeX, sometimes it works and sometimes it doesn’t. So much for no code development, we have capitulated and resorted to pulling at the Python Interpreter. Trying something new, we have wrapped our GPT-4 engine in BeeWare, which promises write once run everywhere functionality. This will also allow us to compare the OpenAI API vs browser GPT responses.
Read More – https://medium.com/@reefwing/adding-a-user-interface-to-chatgpt-with-beeware-part-1-852f1758fd65
app
A Review of Cross Platform Development Tools and Frameworks
It is the dream of every developer to write code once and then deploy it frictionlessly to every available platform (macOS, Windows, Linux, iOS, Android, …). This is of course very hard to do in practise, as each platform does just about everything differently. “Viva la différence!”
As consumers this is a good thing, and gives us options. As developers, it is a huge pain in the neck. Because this is a big problem for devs, a lot of people have had a crack at solving it. Every so often, we stray from the path of native development and are tempted by the sweet promise of “write once, run anywhere!” The problem is if you need to do anything close to the metal or complicated, you usually have to drop down into native code, which kind of defeats the purpose. There are some applications that are categorically not suited to cross-platform solutions. Anything that requires deep system-level integration, minimal latency, or specialized use of hardware features, probably falls into this bucket.
Read More – https://reefwing.medium.com/a-review-of-cross-platform-development-tools-and-frameworks-d14d572828b5
New Review of our App FlightPlan on Free Apps for me website
Check out the latest review of our app FlightPlan on freeappsforme!
This app allows you to program a flight plan for the Tello Drone and then upload it to the drone for execution. You can also fly the drone manually with the app if you wish.
While the plan is being flown, the app will display the glass cockpit. Real time telemetry from the drone is displayed on the glass cockpit. This includes pitch, roll, yaw, velocity (x, y, z), temperature, time of flight (tof), height, battery percentage, motor on time, barometric pressure, and acceleration (x, y, z).
You can download FlightPlan for FREE from the Apple App Store.
ChatGPT — As a Programming Tool
Although ChatGPT is unlikely to be replacing programmers anytime soon, it can be a useful coding assistant. In this article, we will investigate how you can use ChatGPT (GPT-3.5) as a programming tool, and compare it to the earlier model found in the Open AI Playground (GPT-3). For simplicity, we will use mostly Python in our examples. Despite its limitations, ChatGPT is seriously impressive.
Read more at Medium…
Age Prediction API based on First Name
I just came across an interesting API that your app can use to predict a persons age based on their first name. The API is free for up to 1000 names/day. It is called agify.io (https://agify.io/). #development
You can try it out in your browser – just insert your first name instead of “david”:
https://api.agify.io?name=david
Setting Up a Raspberry Pi Web Kiosk
We have a solar system and I wanted to keep an eye on our relative energy consumption and generation during the day. The SolarEdge inverter that we use has a mobile app and a web dashboard but neither refresh automatically. This article explains how I set up the Seeed reTerminal as a dedicated web kiosk to be able to monitor our solar performance in near real time. #solar #raspberrypi #webkiosk
New Flight Plan Review
The website “Free Apps for Me” has recently reviewed our iOS drone mission control app called Flight Plan. You can check out the review here.
Wire Frame & Prototyping Tools
Putting together a rough sketch or wire frame of your app design is always a good idea. Doing this will provide the following advantages:
- It will assist you in communicating your idea to the developer, visual designer or others. It is much easier to get feedback on your ideas if you have a straw man to start the discussion with. The wire frame or prototype becomes your app blue print. You wouldn’t start building a house without plans (hopefully), similarly you should have a set of plans for your app.
- It will save you money. It is a lot easier and cheaper to change something in the prototyping phase than it is once the app is finished.
- It will save you time. Although taking the time to do a wire frame may seem like more effort, this will be repaid many times over during development and prevents false starts.
- It will improve your design. By sketching out the design and explaining how a user will move from screen to screen it will quickly become obvious what will work and what won’t. Doing this will also prompt other ideas, work as a creative catalyst and ensure that you have thought of every eventuality.
There are many tools and resources available to help make prototyping and generating wire frames easier. Below are 26 resources which can be used to generate your wire frames:
- Keynotopia – Use PowePoint/Keynote to Prototype Like a Pro
- Justinmind – Rich interactive wireframes to define web and mobile applications
- Proto.io – Mobile prototyping
- UXPin – UX design tools built by UX designers
- AppGyver’s Prototyper – Turn wireframes into an interactive mobile app prototype
- App Mockup Tools
- WireKit – An iPhone app wireframe kit
- DevRocket – Photoshop panel plugin for iOS developers
- Fluid UI – Mobile Prototypes for iOS, Android and Windows Apps
- UI Stencils – Stencils, sketch pads and accessories for UI design
- App Cooker – Advanced iOS mockup generator for mobile applications
- Flinto – Quickly create iOS prototypes
- App Icon Template – App icon template for iOS 7
- PortKit – UX Metaphor Equivalents for iOS & Android
- iOS 7 Wireframe Kit
- SketchMirror – Preview your mobile apps directly on your devices
- Invision – Free Web & Mobile Mockup and UI Prototyping Tool
- Framer – Prototyping tool for animation and interaction
- Marvel – Free prototyping tool
- POP (Prototyping on paper) – iPhone App Prototyping Made Easy
- Mockabilly – App for creating mockups on iPhone
- Interface – Advanced mockup and prototyping for iOS
- Blueprint – Mockup iPad app for iPhone and iPad applications
- Proptotypes – Turn static designs intro a tappable iPhone prototype
- FieldTest – Create mobile interactive prototypes
- Dotted Paper
Development Complexity & Price
It is difficult to calculate how difficult an app will be to build, but it can be useful to know this when developing a quote for an app. There are a few different approaches that you can take.
You could use Halstead complexity measures which are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development. Halstead made the observation that metrics of the software should reflect the implementation or expression of algorithms in different languages, but be independent of their execution on a specific platform. These metrics are therefore computed statically from the code using the following:
For a given problem, Let:
- = the number of distinct operators
- = the number of distinct operands
- = the total number of operators
- = the total number of operands
From these numbers, several measures can be calculated:
- Program vocabulary:
- Program length:
- Calculated program length:
- Volume:
- Difficulty :
- Effort:
The big problem with this approach is that you can’t calculate the metrics until you have written the code. This is problematic at the quotation stage of a project.
Our approach is based more on heuristics (i.e. educated guessing). By completing the following quick questionnaire we can come up with a score out of 100 which approximates the complexity and hence development effort required. This is used as an input into calculating the number of hours required and ultimately the cost.
Reefwing Complexity Matrix
- How customised is the user interface? Score from 0 for using the provided UI elements to 20 for a totally customised UI. Most game apps score a 20 for this, as everything from the buttons to the navigation bars need to be customised to suit the game theme. Utility apps are more likely to get a low score.
- How complicated is the underlying data model? This could vary from 0 for no persistent data to 20 for server based data. Using SQL or Core Data (for iOS) would be somewhere in the middle.
- How complex is the app? This relates to the app objective and may influence the other considerations. For example, an app with low complexity may simply display data. The other extreme would be an app that performs route mapping or language recognition. This dimension is a measure of what you are trying to do, the previous question on the data model is an element of how you are solving the problem. A lot of games can be surprisingly complex, an example of this would be if you were trying to build a decent AI for a 3D environment. Complexity will also influence how much code you will need to write which in itself will make life more difficult (have a look at the Halstead equations above).
- Who, what or how does the app have to communicate? You would score a 0 for this if the app was stand alone. The score would rise with the scale and type of networking required. You would also take into account how the networking was performed (e.g. Bluetooth, Wi Fi, etc) and how robust it needed to be (redundancy?).
- Does the app require 3rd party libraries or API’s? This could be ad servers, geo location, language recognition, translation services or anything similar. Score 0 for none and increase the score based on the number of interfaces. We also vary the score based on the maturity of the API and the API provider.
Once you have calculated your complexity score by adding the results from the five questions above you will get a number out of 100. We segment our apps into the following categories:
- > 80: Insane:: You probably need to double the price you first thought of. Complexity increases exponentially (not linearly) with added elements because they all interact with each other.
- 60 – 80: Difficult:: In this range you would double check everything and ensure that you have a tight specification. This app will likely take you longer than you expect and throw up things that you don’t expect. Add an extra 25 – 50% contingency.
- 40 – 60: Average:: Most apps will fall into this range, no extra contingency should be required as long as the specification is solid and you have wire frames.
- 20 – 40: Easy:: Should be a walk in the park. A good place for beginner developers to start.
- 0 – 10: Simple:: There can never be too many fart apps.
We haven’t seen any other attempts to model app complexity but we would love to hear about the practices or thoughts of other developers.
Android Studio for App Development
At Google I/O 2013, Google launched a new Integrated Development Environment (IDE) based on IntelliJ IDEA, called Android Studio.
Android Studio provides integrated Android developer tools for development and debugging. On top of the capabilities you expect from IntelliJ, Android Studio offers:
- Gradle-based build support.
- Android-specific refactoring and quick fixes.
- Lint tools to catch performance, usability, version compatibility and other problems.
- ProGuard and app-signing capabilities.
- Template-based wizards to create common Android designs and components.
- A rich layout editor that allows you to drag-and-drop UI components, preview layouts on multiple screen configurations, and much more.
- Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud Messaging and App Engine as server-side components.
Android Studio includes a powerful code editor, which supports smart editing, advanced code refactoring, and deep static code analysis.
Smart editing includes inline resource lookups that make it easier to read your code. Code refactoring allows you to transform your code across the scope of the entire project.
Static code analysis helps you identify bugs quickly. On top of the hundreds of code inspections that IntelliJ IDEA provides, Google have added custom inspections. For example, metadata to the Android APIs, that flag which methods can return null and which can’t, which constants are allowed for which methods, and so on. Android Studio uses that data to analyze your code and find potential errors.
Be aware that Android Studio is currently available as an early access preview. Several features are either incomplete or not yet implemented and you may encounter bugs. If you are not comfortable using an unfinished product, you may want to instead download (or continue to use) the ADT Bundle (Eclipse with the ADT Plugin).
Instructions for downloading the latest version of Android Studio are available here: http://developer.android.com/sdk/installing/studio.html. Versions are available for download on Windows, Mac OS X and Linux.