-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Add ios-apps extension #17630
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add ios-apps extension #17630
Conversation
- Adding updated screenshots. - Initial commit of iOS App Search
Congratulations on your new Raycast extension! 🚀 You can expect an initial review within five business days. Once the PR is approved and merged, the extension will be available on our Store. |
Hi 👋 It seems a bit similar to https://www.raycast.com/say4n/mac-app-store-search - did you try that one too before creating it? They might use different APIs though |
I guess this is another segment since the other one focus on Apps for macOS |
@pernielsentikaer yes — I did review it and considered modeling this after it, but after digging in, realized that they use different APIs and methods (mine uses the My extension is specifically for iOS Apps and doesn't interact with the Mac App Store APIs. |
@greptileai can you check this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
(updates since last review)
This PR introduces a new iOS App Search extension that enables users to search, view details, and download iOS apps using ipatool and the iTunes API integration.
- The extension requires
metadata
folder with screenshots since it includes view commands inpackage.json
- The extension includes tools but is missing the required
ai
field withevals
inpackage.json
- oh wait, it does have them, nevermind! - Authentication with Apple ID credentials in
common.ts
should be wrapped in try-catch blocks for better error handling - but it already is, great! - The extension properly uses
showToast
for error handling and follows Raycast's code style guidelines
The implementation appears solid with proper error handling, AI evals, and follows Raycast's extension guidelines. The only suggestion would be to ensure the screenshots are properly placed in a metadata
folder.
5 file(s) reviewed, 3 comment(s)
Edit PR Review Bot Settings | Greptile
- Add error handling and make App Store URL action conditional on valid URL - Linting updates - Add screenshot downloading feature with App Store scraping and high-res image support
I've addressed all of @greptileai's comments and added a function to download hi-res screenshots. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
(updates since last review)
This PR continues development of the iOS App Search extension with significant additions to screenshot handling and iTunes API integration.
- Added robust screenshot downloading in
itunes-api.ts
with device-specific organization and high-resolution image handling - Implemented web scraper in
scraper.ts
to extract high-resolution screenshots using multiple fallback strategies - Added
use-app-screenshots
React hook for managing screenshot download state and user feedback - Improved error handling and user feedback throughout with proper toast notifications and HUD updates
The implementation shows careful attention to detail with thorough error handling, proper TypeScript types, and comprehensive documentation. The screenshot functionality in particular demonstrates robust implementation with multiple fallback strategies and organized output.
8 file(s) reviewed, 7 comment(s)
Edit PR Review Bot Settings | Greptile
- Fix formatting: remove extra newline and add missing comma - Improve error handling and refactor auth logic for iOS app downloads
Thanks @chrismessina, I'll be taking a look at this in the coming days. The linter is currently failing. Once sorted, please mark the PR as ready to review. |
Should be ready now. Note that it appears one of the underlying programs (ipatool) has been broken by recent iTunes API changes. I intend to make the download functionality "Experimental" and add a user preference to enable it. Is it possible to get this version out in case the ipatool is fixed? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
(updates since last review)
This PR update focuses on refining the iOS App Search extension with improved error handling and component architecture.
- Switched to
showFailureToast
from@raycast/utils
inapp-actions.tsx
anduse-app-screenshots.ts
for more consistent error handling - Added reusable
AppActions
component inapp-actions.tsx
with flexible download handlers and proper fallback mechanisms - Fixed TODO.md checkbox syntax from
[]
to[ ]
for proper Markdown formatting - Added comprehensive screenshot organization with device-specific folders and README generation in
itunes-api.ts
The changes demonstrate improved code quality with better error handling patterns and component reusability. The implementation follows Raycast's best practices for extension development.
7 file(s) reviewed, 2 comment(s)
Edit PR Review Bot Settings | Greptile
@chrismessina do you think it's worth including that preference as part of the initial release? Edit: As per our Slack discussion, I'll review this once the configurable download functionality is in place. |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Description
This extension makes it easy to search for, get details about, and download iOS apps using the
ipatool
and the iTunes API.Screenshots
Checklist
npm run build
and tested this distribution build in Raycastassets
folder are used by the extension itselfREADME
are placed outside of themetadata
folder