jdee / dubsar_ios Goto Github PK
View Code? Open in Web Editor NEWDubsar native application for iOS
Home Page: https://dubsar-dictionary.com
Dubsar native application for iOS
Home Page: https://dubsar-dictionary.com
Some inflections will show up twice in Search and Word views, but it's not entirely consistent.
The application should tell the user that no results were found if they type in "foo." This used to be indicated in the first row of the table view, but it's disappeared.
This appears to be something like a race.
This has been observed once or twice on the iPad, though it could conceivably happen on the iPhone as well. This simply loads a URL from an Apple domain, which ultimately launches the AppStore application. It's likely that the request is hanging. This is done by calling openUrl: on UIApplication.sharedApplication. Apparently this call is synchronous. It should perhaps be done in a separate thread.
The server can return up to 10 autocompletion responses. The table views are sized for 10 rows in both orientations. If the popover first appears in portrait orientation, it will always have the correct size. In landscape, with the keyboard present, the popovers are shortened to the available room, having only about seven rows. After the keyboard disappears, the popovers are restored to the correct size. If they first appear in landscape mode, once the keyboard vanishes, they will be a little too short, having only nine complete rows and a fraction of a tenth.
The view is sized to fill the small screen. The font size is too tiny to read easily. In landscape, it's legible.
After a view is unloaded and reloaded, sometimes it is stale and just displays "loading..." for one or more fields on the page. This happens in a number of views, for example in the word view on iPhone, the inflections label may not be displayed correctly if you go back and then forward again to the same word view.
The table view that displays results in the iPad search view will not accept pan gestures to drag the view from side to side in the 1.0.1-1 build. It only accepts the gesture over the navigation bar. This doesn't happen in the iPhone app or in 1.0.
This is inconsistent with behavior elsewhere in the app.
The support URL will be listed in the App Store, and it is available from the Mobile FAQ page. But it should be included on the About page of each application too, possibly with the copyrights for WordNet and JSONKit.
Each Word of the Day has an implicit expiration time (which may become explicit in a later version of the API). Once it's successfully retrieved, there's no need to get a new WOTD until that expiration time has passed. This should be recorded in the DB's daily_words table as on the server or otherwise stored on each device.
Search for an inflected word form, e.g., "recommended." This matches the verb recommend via an inflection. The exact match is filtered out of the search results based on the word only, without considering the inflection. Hence, it shows up twice in the results.
It needs to help the user spell a word by completing as they type. This looks like an easy fix.
This doesn't happen on the iPad.
You have to backspace manually to clear the contents of either search bar.
The launch images are inappropriate for the case where the app is slow to wake up from the background. They are not generic enough, since they show the initial application screen. They need to be applicable to any view.
If you click the "other senses" button near the top right of a sense view, you get a popover displaying, essentially, the word view associated with the sense. The popover is resized once the data response is received. Sometimes the resized popover has an extra row.
The project's version number was changed to 1.0.1, but the build number in the latest beta build is still 1.0. It also needs to be changed in the other test and copy projects here and there for the user agent version to show up correctly.
Since release, the application was verified to run on iOS 4.2. The next release will support this version.
And possibly with other kinds, but in this case, the defective verb "had best" is present tense in usage but morphologically past tense. Due to insufficient error handling, Augury is rendering it as (null). Now it will come back as "had best" for the third-person singular in an augury like "a janitor had best to arrive."
Turn on case-sensitive matching in the master panel. Autocompletion and searching from that search bar will not honor the switch setting.
Search for "phone." The first result is "cell phone." Tap that row. Then go back. Tap "cell phone" again. The white banner label saying "loading..." should not be visible.
Search for frozen. Two exact matches will appear at the top: frozen (adj.) and freeze (v.), because frozen is an inflection of that verb. They are listed in that order, however. When ordering exact matches, only the part of speech is considered out of the erroneous conviction that all matching words would have the same name. Clearly the order needs to be something like words.name ASC, words.part_of_speech ASC. This also occurs in the webapp because it uses the same SQL.
The application does not stretch to fill the screen that is taller in portrait orientation and wider in landscape. Instead there are black bars at the ends.
The inflections label would only be visible if a word had both a frequency count and inflections. This applies to both iPhone and iPad, but not to the word popovers in the iPad.
Sometimes the iPhone autocompleter will not respond when tapped.
The footer text for Instance Hyponyms reads, "instance of this class." It should be plural: instances.
If a push is received while the app is on the home screen, the WOTD simply updates in place on the screen. At this point, the user has seen it. The WOTD indicator is not intended to be lit up after leaving this view.
Instead, at the moment, the WOTD indicator does not show on the home screen, but will appear in the navigation bar after leaving the home screen until the WOTD is eventually viewed by tapping the indicator or returning to the home screen.
So far this has only been observed in the iPhone app. Occasionally on rotation, the entire view is positioned somewhat too high, so that the search bar is partially or entirely hidden by the navigation bar. It is usually only partially obscured. The iPhone navigation toolbar is hidden in landscape and shown in portrait because of the limited screen size. The transition, on rotation, is animated. The animation could be producing a race condition.
If you tap a row in a grouped table view in a Sense or Synset view, then go back to that view, the selected row will remain highlighted.
Exact matches are always sorted to the top of the autocompleter. The rest of the autocompleter is populated by a second query. Duplicates are excluded from that second query, but the exclusion fails when a match is capitalized. So search for a lowercase word like "fellow," and the lowercase exact match will appear once at the top. Search for "lasso," and the match is capitalized. It appears twice at the top of the autocompleter.
Search for state. The preview in the result is for a noun sense synonymous with province. You see a sample sentence: his state is in the deep south.
Now hide the preview and tap the right side of the page control at the bottom of the search results. You get back page 2 of the results, beginning with Free State. The word preview shows a sense synonymous with Orange Free State, but you still also see: his state is in the deep south. The Sense preview is stale.
It should disappear with the master panel. This is another inheritance issue.
If a view first experiences a network error, and displays that information, it should re-request and refresh the data the next time it is refreshed. In particular, whenever viewDidLoad is called, it will re-request the data if the previous attempt returned an error. But this method is not called when the app wakes up from the background. So, for example, put a device in airplane mode and then launch the app fresh or go home. You should get an alert dialog saying the network is out, and the word of the day button will show the same information. Put the app to sleep. Exit airplane mode, so that you have connectivity again. Wake the app by tapping the app icon. You can continually tap the home button and the app icon, and it will never refresh. Now, from the Dubsar home view, tap the About button. Then tap Done. The application will request and refresh the word of the day.
This should happen when it wakes from the background after an error.
Especially after clearing the contents of the search bar, the autocompleter contents will hang around.
Certain views include inaccurate help text, particularly Synset views that contain Sample Sentences. These are labeled, "examples of usage for this word and synonyms." This is appropriate in Sense views. In Synset views, it should say, "examples of usage for the words in this synset," or perhaps just, "examples of usage." The qualification was added to avoid confusion in Sense views, when the Sample Sentences are taken from the associated Synset and include samples for the current word's synonyms.
In particular, put an iPhone or iPod Touch in airplane mode. Then launch Dubsar fresh or go home. It will usually pop up two or three alert dialogs in a row.
The cancel button should restore the text to its state before editing began.
Search for term%. One by one, tap each result, then go back. The app will eventually crash when you tap one of the results. So far this has only been observed on an iPhone and an iPod and has not been reproduced on an iPad.
The iPad doesn't display a "no suggestions" message. The contents of the popovers are always valid entries.
In landscape, choose a sense with a huge number of pointers. For example, search for "law." Choose law (n.). Then select the first sense, "the collection fo rules imposed by authority." This takes a long time to load. Quickly tap the Home button on the master panel. The application will crash when the response is finally returned.
There may be a sort of race or other unpredictable condition. In some cases, the app does not crash, but the network activity indicator will stay on indefinitely.
If a word has only a few senses, perhaps only one (e.g., sea cow), both apps draw the table view a little too short for the detail panel height.
The Word of the Day popovers on the iPad are implemented in two steps. First, the /wotd.json request is made to get the basic word information. Then a request is made for that word. The popover is only created when the word request is made. Sometimes the Word of the Day button appears somewhat unresponsive, since in extreme cases no popover may appear for a couple of seconds after the button is tapped.
The popover could be presented in a "loading..." state right away, when the initial request is made. However, it might be better to make the iPad implementation better resemble the iPhone implementation: Make the /wotd.json request whenever the WOTD buttons are drawn, updating their text with only the name and part of speech. Then make the full word request and present the popover immediately, like normal, when the button is tapped.
In the JSON implementation, it was necessary to recover from network outages and refresh loads that had previously returned errors whenever a view was displayed, in case a transient error condition had cleared. If a view did not previously return an error, there was no need to refresh it. This is how the iPad app works. But the same logic never worked on the iPhone. Eventually the app just began loading every view from the network every time it was displayed, regardless of whether there was an error. This is certainly no longer necessary with a local DB.
This design was responsible for a recent crash. At the moment, if you go back to a large search, the view is not put into a loading state. It appears to be loaded. But the model object is reset when the view refreshes, and it begins loading again. While it is loading, the app will not respond to taps. So for a few seconds, you may see data, but the screen will not respond to taps. Then it will start responding, once the search is complete again.
When I sync'd the Dubsar app with my iTouch I got the message;
"The app "Dubsar" was not installed on the iPod "shane's iPod" because the signer is not valid.
As a result of some recent server changes, the iOS apps sometimes display the part of speech twice at the top of a Sense view. This happens in the case of lexical pointers, that is, pointers from one sense to another. For example, search for throat. In the Word view, tap the first sense, with frequency count 34: the passage to the stomach.... In the Sense view, tap the Derivationally related form throaty (adj.). This view's title is incorrectly throaty (adj.) (adj.).
The drag handle (the gold background image that shows up behind the banner label in Sense and Synset views when the label is dragged) is displayed in response to pan gestures, so it does not appear until the user moves her finger while pressing down o the banner label. It ought to appear whenever pressure is applied, to give better feedback to the user.
Put a device into airplane mode. Dubsar notifies you of the outage every time you attempt to access anything that requires the network. But if you restore the connection, going back and forward again (or vice versa) ought to amount to a refresh.
Having a web-based FAQ has certain virtues, but for one thing, where the main web-based FAQS (http://dubsar-dictionary.com/faq, http://m.dubsar-dictionary.com/m_faq) link to word entries in their respective webapps, it's not easy to link from the web-based FAQ in an iOS app to local word views. Further, though the counts ought to be the same, the web-based FAQS count rows in the server's database. It would be nice to have the iOS FAQ count rows in the local database now. And of course, the FAQ is unavailable if the network is out. Text formatting with UIKit is a bit tedious, and the iOS FAQ will lose the benefits of centralized distribution. But it's probably a good idea eventually to make the FAQ consistent with the rest of the app.
Search for a word like "law." That has a tremendous number of matches because of fulltext searching. You have to tap several pages in before you get to the word "law (n.)."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.